PHP pcntl_wifexited 进程控制函数



  • 定义和用法

    pcntl_wifexited - 检查状态代码是否代表一个正常的退出。
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
  • 语法

    pcntl_wifexited( int $status )
    
    pcntl_wifexited() 检查子进程状态代码是否代表正常退出。
  • 参数

    参数 必需的 描述
    status 参数 status 是提供给成功调用 pcntl_waitpid() 时的状态参数。
  • 返回值

    当子进程状态代码代表正常退出时返回 TRUE ,其他情况返回 FALSE。
  • 示例

    下面例子演示多进程示例:
    $childs = array();
    
    // Fork some process.
    for($i = 0; $i < 10; $i++) {
        $pid = pcntl_fork();
        if($pid == -1)
            die('Could not fork');
    
        if ($pid) {
            echo "parent \n";
            $childs[] = $pid;
        } else {
            // Sleep $i+1 (s). The child process can get this parameters($i).
            sleep($i+1);
           
            // The child process needed to end the loop.
            exit();
        }
    }
    
    while(count($childs) > 0) {
        foreach($childs as $key => $pid) {
            $res = pcntl_wifexited($pid, $status, WNOHANG);
           
            // If the process has already exited
            if($res == -1 || $res > 0)
                unset($childs[$key]);
        }
       
        sleep(1);
    }
    
  • 相关页面

    pcntl_waitpid() - 等待或返回fork的子进程状态
    pcntl_wexitstatus() - 返回一个中断的子进程的返回代码