Simple function for check process nice, by default returns nice of current process:
<?php
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));
}
?>
proc_nice
(PHP 5)
proc_nice — Çalışan sürecin önceliğini değiştirir
Açıklama
proc_nice() işlevi çalışan sürecin önceliğini fark kadar değiştirir. Pozitif bir fark sürecin önceliğini düşürürken negatif bir fark önceliği arttıracaktır.
proc_nice() işlevinin proc_open() ve onunla ilişkili diğer işlevlerle bir ilişkisi yoktur.
Değiştirgeler
- fark
-
Önceliği değiştirecek fark.
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.
Notlar
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. Yani, Windows'ta proc_nice() diye bir işlev yoktur.
proc_nice
25-Nov-2008 01:22
12-Aug-2004 11:20
Just an addition to the previous note re: exec('renice...'). The exit_func() will not set the priority back to normal (0) (at least on linux), unless the user that the webserver is running as is a super user (bad idea). You can decrease the priority of the running task, but not increase it again. See man page for renice.
To prevent subsequent requests running at the lower priority I called apache_child_terminate() on shutdown.
10-Nov-2003 10:34
If you don't have PHP5 and needs to nice your process this works good.
<?php
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
proc_nice(0);
}
register_shutdown_function('exit_func');
?>
