ScotlandPHP 2019


(PHP 5, PHP 7)

proc_niceMuda a prioridade do processo atual


proc_nice ( int $increment ) : bool

proc_nice() muda a prioridade do processo atual pela quantidade especificada em increment. Um increment positivo irá diminuir a prioridade do processo atual, enquanto um increment negativo irá aumentar a prioridade.

proc_nice() não é relacionada com proc_open() e suas funções associadas de qualquer maneira.



O valor do incremento da mudança de prioridade.

Valor Retornado

Retorna TRUE em caso de sucesso ou FALSE em caso de falha. Se ocorrer um erro, como o usuário não ter permissões suficientes para mudar a prioridade, um erro de nível E_WARNING também é gerado.


Nota: Disponibilidade

proc_nice() irá existir apenas se o seu sistema tiver capacidades 'nice'. 'nice' conforma com: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Isto significa que proc_nice() não esta disponível no windows.

add a note add a note

User Contributed Notes 4 notes

5 years ago
On a Linux system, running apache2 as a non-privileged user you can not increase the niceness of the process after decreasing it. Also, you can not use the apache_child_ terminate either. I found the following does work though:


//decrease niceness

//kill child process to "reset" niceness
posix_kill( getmypid(), 28 );

7 years ago
Regarding ionice - on linux the impact of the ionice -c3 class is similar to that of nice, because the CPU "niceness" is taken into account when calculating the io niceness.
php at richardneill dot org
8 years ago
If a process is reniced, then all its children inherit that niceness. So a PHP script can call proc_nice on itself, then invoke system(), and the command executed via system() will also be niced.

Also worth making a note of ionice. There's no PHP function for this, but it's important. A nice'd program will happily try to chew up all i/o bandwidth with very little CPU usage, it can therefore make the entire computer non-responsive despite the programmer's intention.  Use "ionice -c3"  or see "man ionice"
pandi at home dot pl
10 years ago
Simple function for check process nice, by default returns nice of current process:


public static function getProcessNice ($pid = null) {
    if (!
$pid) {
$pid = getmypid ();
$res = `ps -p $pid -o "%p %n"`;
preg_match ('/^\s*\w+\s+\w+\s*(\d+)\s+(\d+)/m', $res, $matches);
    return array (
'pid' => (isset ($matches[1]) ? $matches[1] : null), 'nice' => (isset ($matches[2]) ? $matches[2] : null));

To Top