为什么我的父进程不等待其子进程执行?

时间:2009-09-28 18:05:59

标签: php fork

我有最基本的脚本:

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     echo "parent done";
     pcntl_wait($status); //Protect against Zombie children
     echo "all done";
} else {
     // we are the child
     echo "Child finished";
}

当我运行它时,输出始终为“Child finished”。我在lighttpd服务器上运行它。

1 个答案:

答案 0 :(得分:0)

可能是你从孩子那里得到一个信号,但这不是退出状态尝试一些事情:

do {
    pcntl_wait($status);
} while (!pcntl_wifexited($status));

确保状态为退出状态(SIGCHILD)。