ConFoo Vancouver & Montreal


(PHP 5, PHP 7)

proc_niceChange the priority of the current process


bool proc_nice ( int $increment )

proc_nice() changes the priority of the current process by the amount specified in increment. A positive increment will lower the priority of the current process, whereas a negative increment will raise the priority.

proc_nice() is not related to proc_open() and its associated functions in any way.

Elenco dei parametri


The new priority value, the value of this may differ on platforms.

on Unix, a low value, such as -20 means high priority wheras a positive value have a lower priority.

For Windows the increment parameter have the following meanings:

Priority class Possible values
Realtime priority increment < -14
High priority increment < -9
Above normal priority increment < -4
Normal priority increment < 5 & increment > -5
Below normal priority increment > 5
Idle priority increment > 9

Valori restituiti

Restituisce TRUE in caso di successo, FALSE in caso di fallimento. If an error occurs, like the user lacks permission to change the priority, an error of level E_WARNING is also generated.


Example #1 Using proc_open() to set the process priority to high

// Highest priority

Log delle modifiche

Versione Descrizione
7.2.0 This function is now available on Windows.


Nota: Availability

proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Nota: Windows only

The values of increment tries to mimic the output of the wmic.

On Windows this function will only change the current process priority, even if PHP was compiled using thread safety.

add a note add a note

User Contributed Notes 5 notes

3 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 );

php at richardneill dot org
6 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"
griph at dd dot chalmer dot se
12 years ago
If you don't have PHP5 and needs to nice your process this works good.


function proc_nice($priority) {
exec("renice +$priority ".getmypid());

//You also need a shutdown function if you don't want to leave your http deamons with a modified priority
function exit_func(){
// Restore priority

5 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.
pandi at home dot pl
7 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