php[world] 2019 — 25 years of PHP


(PHP 5, PHP 7)

proc_niceChange la priorité d'exécution du processus courant


proc_nice ( int $increment ) : bool

proc_nice() modifie la priorité du processus courant par le paramètre spécifié increment. Un paramètre increment positif atténuera la priorité du processus courant, tandis qu'une valeur négative increment augmentera la priorité.

proc_nice() n'est pas lié à proc_open() et ses fonctions associées d'aucune façon.

Liste de paramètres


La nouvelle valeur de priorité, la valeur de ceci peut différer sur des plates-formes.

Sur Unix, une valeur faible, telle que -20 indique une priorité élevée alors qu'une valeur positive ont une priorité basse.

Pour Windows le paramètre increment a les significations suivantes :

Classe de priorité Valeurs possible
Priorité élevée increment < -9
Au-dessus de la priorité normale increment < -4
Priorité normale increment < 5 & increment > -5
Au-dessous de la priorité normale increment > 5
Priorité inactive increment > 9

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Si une erreur survient, par exemple, si l'utilisateur qui tente de changer la priorité d'un processus n'a pas suffisamment de droit pour le faire, une erreur de niveau E_WARNING est générée et FALSE est retourné.


Exemple #1 Utilisation de proc_nice() pour définir la priorité de processus à haute

// Priorité la plus élevée


Version Description
7.2.0 Cette fonction est maintenant disponible sur Windows.


Note: Disponibilité

proc_nice() n'est disponible que sur les systèmes qui disposent de capacités NICE. NICE est compatible avec : SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Note: Windows seulement

proc_nice() va changé la priorité du processus courent même si PHP a été compilé en utilisant la sécurité des threads.

add a note add a note

User Contributed Notes 4 notes

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