为什么PHP子进程会变成僵尸?

为什么PHP子进程会变成僵尸?,php,command-line-interface,zombie-process,Php,Command Line Interface,Zombie Process,我有一个脚本可以完成几个任务。 为了避免超时、memorylimits、crossvar等等,我决定使用一个主脚本,在不同的PHP进程上分叉所有TAK 我可以手动运行脚本,工作正常 我可以手动运行每个子进程,工作正常 然而,我时不时地看到一些子进程永远在运行,我必须从顶部杀死它们 有人知道为什么CLI执行的PHP进程会变成僵尸,并避免关闭自己和主进程吗 繁殖过程: foreach ($OPS as $OP) { $command = $PHP_BIN." ".__DIR__."/proc

我有一个脚本可以完成几个任务。 为了避免超时、memorylimits、crossvar等等,我决定使用一个主脚本,在不同的PHP进程上分叉所有TAK

我可以手动运行脚本,工作正常

我可以手动运行每个子进程,工作正常

然而,我时不时地看到一些子进程永远在运行,我必须从顶部杀死它们

有人知道为什么CLI执行的PHP进程会变成僵尸,并避免关闭自己和主进程吗

繁殖过程:

foreach ($OPS as $OP) {
    $command = $PHP_BIN." ".__DIR__."/process_this.php op_id=".$OP["id"];
    exec($command);
    sleep(5);
}

“永远奔跑”和“变成僵尸”完全是两码事。你可能在某个地方有一个bug,导致进程无限期地挂起或循环。是的,但是由于这些子进程都有一个无限循环。。。他们也有一个明确的PHP超时。。。因此,它们永远在运行,因为它们变成了僵尸。如何生成子进程,显示代码。僵尸进程是一个在其父进程终止后终止的进程,因此没有人来清理它。我已经用生成进程更新了这个问题