(PHP 5 >= 5.3.0, PHP 7, PHP 8)
pcntl_sigwaitinfo — 等待信号
$signals
, array &$info
= []): int|false
pcntl_sigwaitinfo() 函数暂停调用脚本的执行直到接收到 signals
参数中列出的某个信号。只要其中的一个信号已经在等待状态(比如:通过 pcntl_sigprocmask()
函数阻塞),pcntl_sigwaitinfo() 就回立刻返回。
signals
要等待的信号数组。
info
info
参数设置为数组,包含信号信息。
以下元素会为所有信号设置:
下面元素可能会为 SIGCHLD
信号设置:
信号 SIGILL
,
SIGFPE
, SIGSEGV
和
SIGBUS
可能会被设置的元素:
可能会为 SIGPOLL
信号设置的元素:
成功时返回信号编号, 或者在失败时返回 false
。
Example #1 pcntl_sigwaitinfo() 示例
<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);
echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>