PHP pcntl_sigwaitinfo 进程控制函数
-
定义和用法
pcntl_sigwaitinfo - 等待信号 -
版本支持
PHP4 PHP5 PHP7 支持 v5.3.0+支持 支持 -
语法
pcntl_sigwaitinfo( array $set [, array &$siginfo ] )
pcntl_sigwaitinfo() 函数暂停调用脚本的执行直到接收到set 参数中列出的某个信号。只要其中的一个信号已经在等待状态(比如: 通过 pcntl_sigprocmask() 函数阻塞), 函数 pcntl_sigwaitinfo() 就回立刻返回。 -
参数
参数 必需的 描述 set 是 要等待的信号数组。 siginfo 否 siginfo是一个输出参数,用来返回信号的信息。 以下元素会为所有信号设置:- signo: 信号编号
- errno: 错误编号
- code: 信号代码
下面元素可能会为SIGCHLD信号设置:- status: 退出的值或信号
- utime: 用户消耗的时间
- stime: 系统(内核)消耗的时间
- pid: 发送进程ID
- uid: 发送进程的实际用户ID
信号SIGILL, SIGFPE, SIGSEGV 和 SIGBUS 可能会被设置的元素:- addr: 发生故障的内存位置
可能会为SIGPOLL 信号设置的元素:- band: 绑定事件
- fd: 文件描述符
-
返回值
成功时,函数pcntl_sigwaitinfo()返回一个信号编号。 -
示例
下面例子演示多进程示例: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);
-