![](/img/trans.png)
[英]How to start a process in background from a Python script and avoid zombie?
[英]python/django spawn background process and avoid zombie process
这需要很长时间才能发表评论 -
wait
syscall( os.wait
是一个包装器)从死进程中获取退出代码/ pids。 你需要在僵尸进程之上的一代进程中进行os.wait
; 僵尸进程的父级。 当其中一个子进程死亡时,父进程将收到SIGCHLD
信号。 如果您坚持自己完成所有这些操作,则需要安装一个信号处理程序来为SIGCHLD
设置陷阱,并在信号处理程序中调用os.wait
。 阅读有关unix进程处理的一些文档和os
模块上的Python文档,因为os.wait
函数的变体将是非阻塞的,这可能会有所帮助。
import signal
signal.signal(signal.SIGCHLD, lambda _x,_y: os.wait())
我遇到了类似的问题。 我在多处理模块中使用了active_children()。
import multiprocessing
# somewhere in middleware or where appropriate call
active_children()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.