繁体   English   中英

如何从 Python 脚本在后台启动进程并避免僵尸进程?

[英]How to start a process in background from a Python script and avoid zombie?

在下面来自 Python 脚本的代码中,我生成了另一个 Python 脚本。

我想在后台运行“test_bin”并且不想调用等待或通信来获得退出状态。 如果我不使用等待/通信“test_bin”在完成后变得无效(僵尸)。

有没有什么办法可以避免不等待/沟通就倒闭?

import subprocess

test_bin = "/usr/local/bin/test_code.py" # Took 5-10 min to complete
proc_handle = subprocess.Popen( (test_bin, shell=True)
:
:
proc_handle.wait() # don't want to do this.

在类 Unix 系统中,忽略SIGCHLD就足以让子进程永远不会变成僵尸。 所以你可以这样做:

import subprocess
import signal

test_bin = "/usr/local/bin/test_code.py" # Took 5-10 min to complete
signal.signal(signal.SIGCHLD, signal.SIG_IGN)
proc_handle = subprocess.Popen( (test_bin, shell=True)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM