有没有办法阻止multiprocessing
Python模块尝试调用&等待父进程关闭的子进程的join()
?
2010-02-18 10:58:34,750 INFO calling join() for process procRx1
我希望我发送SIGTERM
的进程尽快退出(即“快速失败”),而不是等待几秒钟才最终放弃join
尝试。< / p>
澄清:我有一个“核心流程”,可以创建一堆“子流程”。我正在寻找一种方法来干净地处理来自任何进程的“SIGTERM”信号,以便关闭整个进程树。
答案 0 :(得分:0)
您是否尝试过明确使用Process.terminate
?
答案 1 :(得分:0)
你可以尝试加入一个超时循环(1秒?)并检查线程是否还活着,如:
while True:
a_thread.join(1)
if not a_thread.isAlive(): break
终止a_thread
会触发break
子句。
答案 2 :(得分:0)
听起来像设置您的子流程'标志Process.daemon = False
可能是您想要的:
进程的守护进程标志,一个布尔值。必须在调用start()之前设置 初始值继承自创建过程 当进程退出时,它会尝试终止其所有守护进程子进程。
请注意,不允许守护进程创建子进程。否则,守护进程会在子进程退出时终止其子进程。另外,这些不是Unix守护进程或服务,如果非dameonic进程退出,它们将被终止(并且不被连接)的正常进程。