我有一個主進程分叉了一些子進程。我希望能夠在我的主進程獲得終止信號時關閉這些子進程。理想情況下,我想要做一些沿線:Python在關閉主進程時關閉孩子
def handler(signum, frame, pid_list):
log('Killing Process')
for pid in pid_list:
os.kill(pid, signal.SIGTERM)
os.waitpid(pid, 0) # need
sys.exit()
if __name__ == "__main__":
<code that creates child processes, pids>
signal.signal(signal.SIGTERM, handler(pid_list))
但當然,這不工作......任何建議?
嗨J.F.,感謝關於pip'ing多處理器的指針;我沒有打算在Centos上安裝Python 2.6,但這可能只是一個竅門。我明天會放棄它並給你一些反饋。 –
偉大的名字句柄,順便說一句 –
好的,所以這個效果很好,其他人嘗試這樣做的一些指針:1. p.daemon需要與signal.signal配對,p.daemon不只是做它的擁有。 2.在Centos上安裝多處理:yum install python-pip gcc python-devel && pip-python install multiprocessing。再次感謝J.F. –