PHP以父进程终止的非阻塞子进程


PHP Non-blocking child process that terminates with parent

环顾四周一段时间后,我还没有找到我认为简单的事情的答案。

我使用PHP进行编码,需要从父进程启动一个子进程。子进程必须是非阻塞的:当子进程在后台运行时,父进程应该能够继续进行处理。(请注意,我不能使用进程分叉,因为父进程和子进程不是同一个进程。)一旦父进程完成处理或意外崩溃,子进程就应该终止。

我目前已经使用一个分离的子进程实现了这一点,它运行得很好。。。也就是说,直到父级崩溃。随着时间的推移,如果许多父母崩溃,那么一系列未终止的儿童程序就会像一群愤怒的野蛮人一样在系统中横冲直撞。

我无法检查孤立的子进程是否已经在运行,并在启动父进程之前终止它——可能还有其他父进程带着自己的子进程运行,无法判断哪个父进程正在使用哪个子进程,哪个子进程是孤立的。

任何帮助都将不胜感激!

根据N.B.的评论,我不知道这是如何编码的,我对如何处理它的唯一建议是崩溃处理。它是由于抛出的异常而崩溃的吗?您可以在父类中捕获该异常,也可以从管理父类的位置捕获该异常。如果是的话,你能从那里的异常处理程序关闭你的子进程吗?也许,您仍然应该有某种句柄来从那里访问子进程。