pcntl_wait() - pcntl进程控制
pcntl_wait()
(PHP 5, PHP 7)
等待或返回fork的子进程状态
说明
pcntl_wait(int &$status[,int $options= 0]): intwait函数刮起当前进程的执行直到一个子进程退出或接收到一个信号要求中断当前进程或调用一个信号处理函数。如果一个子进程在调用此函数时已经退出(俗称僵尸进程),此函数立刻返回。子进程使用的所有系统资源将被释放。关于wait在您系统上工作的详细规范请查看您系统的wait(2)手册。
Note:这个函数等同于以-1作为参数$pid的值并且没有$options参数来调用pcntl_waitpid()函数。
参数
$statuspcntl_wait()将会存储状态信息到$status参数上,这个通过$status参数返回的状态信息可以用以下函数pcntl_wifexited(),pcntl_wifstopped(),pcntl_wifsignaled(),pcntl_wexitstatus(),pcntl_wtermsig()以及pcntl_wstopsig()获取其具体的值。
$options如果您的操作系统(多数BSD类系统)允许使用wait3,您可以提供可选的$options参数。如果这个参数没有提供,wait将会被用作系统调用。如果wait3不可用,提供参数$options不会有任何效果。$options的值可以是0 或者以下两个常量或两个常量“或运算”结果(即两个常量代表意义都有效)。
WNOHANG | 如果没有子进程退出立刻返回。 |
WUNTRACED | 子进程已经退出并且其状态未报告时返回。 |
返回值
pcntl_wait()返回退出的子进程进程号,发生错误时返回-1,如果提供了WNOHANG
作为option(wait3可用的系统)并且没有可用子进程时返回0。
参见
pcntl_fork()
在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程号,而子进程得到的是0。pcntl_signal()
安装一个信号处理器pcntl_wifexited()
检查状态代码是否代表一个正常的退出。pcntl_wifstopped()
检查子进程当前是否已经停止pcntl_wifsignaled()
检查子进程状态码是否代表由于某个信号而中断pcntl_wexitstatus()
返回一个中断的子进程的返回代码pcntl_wtermsig()
返回导致子进程中断的信号pcntl_wstopsig()
返回导致子进程停止的信号pcntl_waitpid()
等待或返回fork的子进程状态
This a simple multi process application where you can choose the maximun process that can run at the same time. This is useful when you need to limit the fork of process. When the MAXPROCESS is reached the program wait on pcntl_wait()
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!