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。数值越小,表示调度越有利。

警告

此函数可能返回 Boolean false,还可能返回计算结果为 false 的非 Boolean 值。请阅读 布尔类型 部分,了解更多信息。使用 === 运算符 来测试此函数的返回值。

变更日志

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

另请参见

添加备注

用户贡献的备注 1 个备注

up
2
jonathan at jcdesigns dot com
16 年前
此函数适合用于检查给定进程是否正在运行,我看到过一些解决方案,其中涉及运行系统实用工具(如 PS),再解析答案,这应该也能正常使用,但此函数允许仅通过一个调用即可检查给定 PID

函数 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