proc_nice

(PHP 5, PHP 7)

proc_niceИзменяет приоритет текущего процесса

Описание

bool proc_nice ( int $increment )

proc_nice() изменяет приоритет текущего процесса на значение, указанное в параметре increment. Положительное значение параметра increment будет уменьшать приоритет текущего процесса, а отрицательное значение параметра increment будет увеличивать приоритет.

Функция proc_nice() не связана с функцией proc_open() и к относящимся к ней функциям каким-либо образом.

Список параметров

increment

Значение, на которое должен быть изменён приоритет процесса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае, если происходит ошибка, например, пользователь не имеет прав на изменение приоритета, также генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Доступность

Функция proc_nice() будет доступна только в том случае, если ваша операционная система её поддерживает. Поддержку 'nice' имеют: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. Это означает, что функция proc_nice() недоступна в Windows.

Коментарии

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

?>
2008-11-25 07:22:11
http://php5.kiev.ua/manual/ru/function.proc-nice.html
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"
2010-06-24 03:14:34
http://php5.kiev.ua/manual/ru/function.proc-nice.html
Автор:
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.
2011-01-19 10:40:43
http://php5.kiev.ua/manual/ru/function.proc-nice.html
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:

<?php

//decrease niceness
proc_nice(19);

//kill child process to "reset" niceness
posix_killgetmypid(), 28 );

?>
2013-04-19 21:17:38
http://php5.kiev.ua/manual/ru/function.proc-nice.html
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:
<?php
proc_nice
(-5);
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.)
E.g
<?php
$Current_Niceness_Value 
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];

?>
2021-04-15 04:43:54
http://php5.kiev.ua/manual/ru/function.proc-nice.html

    Поддержать сайт на родительском проекте КГБ