Midwest PHP Call For Papers Open


(PHP 5, PHP 7)

proc_niceÄndert die Priorität des aktuellen Prozesses


proc_nice ( int $increment ) : bool

proc_nice() ändert die Priorität des aktuellen Prozesses um den in increment angegebenen Betrag. Ein positives increment vermindert die Priorität des aktuellen Prozesses, während ein negatives increment die Priorität erhöht.

proc_nice() ist in keinster Weise verwandt mit proc_open() und der dazugehörigen Funktionen.



Der neue Prioritätswert; dieser Wert ist plattformabhängig.

Unter Unix bedeutet ein niedriger Wert, wie beispielsweise -20, eine hohe Priorität, wohingegen ein positiver Wert eine niedrigere Priorität hat.

Unter Windows hat der increment-Parameter die folgende Bedeutung:

Prioritätsklasse Mögliche Werte
Hoch increment < -9
Höher als normal increment < -4
Normal increment < 5 & increment > -5
Niedriger als normal increment > 5
Niedrig increment > 9


Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben. Wenn ein Fehler auftritt, zum Beispiel weil der User keine Berechtigung hat, die Priorität eines Prozesses zu ändern, wird ein Fehler der Stufe E_WARNING erzeugt.


Beispiel #1 Verwendung von proc_nice() um die Prozesspriorität auf hoch zu setzen

// höchste Priorität


Version Beschreibung
7.2.0 Diese Funktion steht nun unter Windows zur Verfügung.


Hinweis: Verfügbarkeit

proc_nice() existiert nur, wenn Ihr System mit 'nice' umgehen kann. 'nice' ist verfügbar unter: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Hinweis: Nur für Windows

proc_nice() ändert die aktuelle Prozesspriorität, selbst wenn PHP mit Threadsicherheit kompiliert wurde.

add a note add a note

User Contributed Notes 4 notes

kevin AT REMOVETHIS mrkmg.com
6 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
9 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"
8 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
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