PHP 8.1.9 Released!


(PHP 5, PHP 7, PHP 8)

proc_niceÇalışan sürecin önceliğini değiştirir


proc_nice(int $öncelik): bool

proc_nice() işlevi çalışan sürecin önceliğini öncelik kadar değiştirir. Pozitif bir öncelik sürecin önceliğini düşürürken negatif bir öncelik önceliği arttıracaktır.

proc_nice() işlevinin proc_open() ve onunla ilişkili diğer işlevlerle bir ilişkisi yoktur.



Yeni öncelik değeri.

Unix'te, -20 gibi düşük bir değer yüksek öncelik anlamına gelirken pozitif bir değer düşük öncelik demektir.

öncelik değiştirgesinin Windows üzerindeki anlamları:

Öncelik sınıfı Olası değerler
Yüksek öncelik öncelik < -9
Normal üstü öncelik öncelik < -4
Normal öncelik öncelik < 5 & öncelik > -5
Normal altı öncelik öncelik > 5
Bekletme önceliği öncelik > 9

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner. Kullanıcının önceliği değiştirme yetkisinin olmaması gibi hata durumlarında E_WARNING seviyesinde bir ileti çıktılanır.

Sürüm Bilgisi

Sürüm: Açıklama
7.2.0 Bu işlev artık Windows üzerinde kullanılbiliyor.


Örnek 1 - Önceliği yükseltmek için proc_nice() kullanımı

// yüksek öncelik


Bilginize: Kullanılabilirlik

proc_nice() işlevi sadece sisteminiz 'nice' yeteneğine sahipse mevcut olacaktır. 'nice' bulunan sistemler: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Bilginize: Windows için

PHP evre güvenliği kullanılarak derlenmiş olsa bile proc_nice() geçerli süreç önceliğini değiştirir.

Ayrıca Bakınız

add a note

User Contributed Notes 5 notes

9 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
12 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"
11 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.
phil_php at zieaon dot com
1 year ago
It is important to note that this is a relative change. I didn't read the description properly and couldn't figure out why setting proc_nice(0) didn't take the forked children back to 0!
For example if you run:
proc_nice(0); // will have no effect
proc_nice(5); // will take the niceness back to 0


In PHP CLI under Debian (and probably many other Linux flavours) you can read the 'niceness' from the proc filesystem.  (There may be a PHP command that gives this info but there doesn't seem to be a link to it on this page.)
= intval(explode(" ",file_get_contents("/proc/".getmypid()."/stat"))[18]);

// Note: Older versions of Linux return an unsigned integer which has to be converted to a signed integer.
$Current_Niceness_Value = unpack("l",pack("L",intval(explode(" ",file_get_contents("/proc/".getmypid()."/stat"))[18])))[1];

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