(PHP 5, PHP 7, PHP 8)
pcntl_getpriority — Get the priority of any process
pcntl_getpriority() gets the priority of
process_id. Because priority levels can differ between
system types and kernel versions, please see your system's getpriority(2)
man page for specific details.
process_id
If null , the process id of the current process is used.
mode
One of PRIO_PGRP , PRIO_USER ,
PRIO_PROCESS ,
PRIO_DARWIN_BG or PRIO_DARWIN_THREAD .
pcntl_getpriority() returns the priority of the process
or false on error. A lower numerical value causes more favorable
scheduling.
This function may
return Boolean false , but may also return a non-Boolean value which
evaluates to false . Please read the section on Booleans for more
information. Use the ===
operator for testing the return value of this
function.
| Version | Description |
|---|---|
| 8.0.0 |
process_id is nullable now.
|
This function is ideal for checking if a given process is running, I have seen solutions that involve running the system utilites like PS and parsing the answer, which should work fine, but this allows you to check a given PID with a single call
function CheckPID( $PID )
{
// Check if the passed in PID represents a vlaid process in the system
// Returns true if it does
// Turn off non-fatal runtime warning for a moment as we know we
// will get one if the PID does not represent a valid process
$oldErrorLevel = error_reporting(0);
error_reporting( $oldErrorLevel & ~E_WARNING );
$res = pcntl_getpriority($PID);
error_reporting( $oldErrorLevel);
return ! ( $res === false);
}