【发布时间】:2015-12-09 19:37:01
【问题描述】:
环顾了一会儿,我还没有找到我认为很简单的事情的答案。
我正在使用 PHP 进行编码,我需要从父进程启动一个子进程。子进程必须是非阻塞的:父进程应该能够在子进程在后台运行时继续进行处理。 (请注意,我不能使用进程分叉,因为父进程和子进程不是同一个进程。)一旦父进程完成处理或意外崩溃,子进程应该终止。
我目前使用分离的子进程实现了这个,它工作得很好……也就是说,直到父进程崩溃。随着时间的推移,如果许多父进程崩溃,一组未终止的子进程就会像一群愤怒的野蛮人一样肆虐系统。
我无法检查一个孤立的子进程是否已经在运行并在启动父进程之前终止它 - 可能有其他父进程与他们自己的子进程一起运行,并且无法判断哪个父进程正在使用哪个子进程以及哪个子进程一个孤儿。
任何帮助将不胜感激!
【问题讨论】:
-
让子进程每 X 秒检查一次父进程是否处于活动状态
-
如果你不能使用分叉,你是如何进行父/子处理的?为什么不能使用分叉?如果您一开始就无法使用执行此操作的工具,您如何期望模拟过程控制?另外..没有一些代码来尝试重现这种行为,我们只能猜测 - 正如你所看到的,第二个评论者已经开始询问为什么不从一开始就这样做。
标签: php nonblocking child-process