Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Process Control Functions : pcntl_setpriority

pcntl_setpriority

Change the priority of any process (PHP 5)
bool pcntl_setpriority ( int priority [, int pid [, int process_identifier]] )

pcntl_setpriority() sets the priority of pid.

Parameters

priority

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

pid

If not specified, the pid of the current process is used.

process_identifier

One of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

Return Values

Returns TRUE on success or FALSE on failure.

Code Examples / Notes » pcntl_setpriority

leandro dot pereira

The following snippet may be used under older versions of PHP to provide similar functionality.  Tested only under Linux.
<?php
function _pcntl_setpriority($priority, $pid = 0)
{
       $priority = (int)$priority;
       $pid = (int)$pid;
       if ($priority > 20 && $priority < -20) {
               return False;
       }
       if ($pid == 0) {
               $pid = getmypid();
       }
       return system("renice  $priority -p $pid") != false;
}
?>


t dot stobbe

As for the renice function by leandro dot pereira at gmail dot com, this isn't true.  pcntl_setpriority() doesn't set the nice level of a process, but instead sets the base priority of it.  At first glance this might seem like the same thing, but on a system level, they are actually quite different.
In fact, if you're looking to use pcntl_setpriority() to prioritize your process (a tool or a daemon or what-not), I wouldn't recomend using setpriority at all, but renice it instead.  Let the system manage priorities and you'll end up with the results you were looking for.
This applies only to POSIX based systems only (as does the function presented by leandro dot pereira at gmail dot com as well).


Change Language


Follow Navioo On Twitter
pcntl_alarm
pcntl_exec
pcntl_fork
pcntl_getpriority
pcntl_setpriority
pcntl_signal
pcntl_wait
pcntl_waitpid
pcntl_wexitstatus
pcntl_wifexited
pcntl_wifsignaled
pcntl_wifstopped
pcntl_wstopsig
pcntl_wtermsig
eXTReMe Tracker