python中的子进程终止



我有一个Python脚本,它使用subprocess. popen()启动一个子进程。这个子进程使用Popen启动另一个子进程(另一个Python脚本)。脚本A调用脚本B,脚本B调用脚本C。如果我使用os.kill()杀死进程脚本B,它会终止运行脚本C的进程吗?

如果脚本A使用os.kill杀死B,那么C本身不会被杀死。

为了确保这一点,脚本B可以在退出

时杀死C
# this is in script B
import functools, atexit
def kill_children(*pids):
    import os, signal
    for pid in pids or []:
        os.kill(pid, signal.SIGTERM)
# we start a process for C
c_pid = ...
# kill C when we we exit
atexit.register(functools.partial(kill_children, c_pid)) 

最新更新