PHP Conference Japan 2024

pcntl_getpriority

(PHP 5, PHP 7, PHP 8)

pcntl_getpriority获取任何进程的优先级

描述

pcntl_getpriority(?int $process_id = null, int $mode = PRIO_PROCESS): int|false

pcntl_getpriority() 获取process_id的优先级。由于优先级级别在不同的系统类型和内核版本之间可能有所不同,请参阅您系统的getpriority(2)手册页以了解具体细节。

参数

process_id

如果为null,则使用当前进程的进程ID。

mode

PRIO_PGRPPRIO_USERPRIO_PROCESSPRIO_DARWIN_BGPRIO_DARWIN_THREAD 之一。

返回值

pcntl_getpriority() 返回进程的优先级,或在出错时返回false。较小的数值表示更优先的调度。

警告

此函数可能返回布尔值false,但也可能返回一个计算结果为false的非布尔值。请阅读有关布尔值的部分以了解更多信息。使用=== 运算符来测试此函数的返回值。

变更日志

版本 描述
8.0.0 process_id 现在可以为空。

参见

添加备注

用户贡献的笔记 1 条笔记

jonathan at jcdesigns dot com
16 年前
此函数非常适合检查给定进程是否正在运行,我见过一些解决方案涉及运行像 PS 这样的系统实用程序并解析答案,这应该可以正常工作,但这允许您使用单个调用来检查给定的 PID。

function CheckPID( $PID )
{
// 检查传入的 PID 是否代表系统中的有效进程
// 如果是,则返回 true
// 暂时关闭非致命运行时警告,因为我们知道
// 如果 PID 不代表有效进程,我们将得到一个警告

$oldErrorLevel = error_reporting(0);
error_reporting( $oldErrorLevel & ~E_WARNING );
$res = pcntl_getpriority($PID);
error_reporting( $oldErrorLevel);
return ! ( $res === false);
}
To Top