在Supervisor控制的过程中,我分叉子进程
for i in xrange(MANAGER_PROCESS_NUM):
p = gipc.start_process(target=daemon_process, args=())
record.append(p)
for r in record:
r.join()
然后在每个子进程中,我创建了孙子进程:
w = gipc.start_process(target=self._pool_worker, daemon=True)
如何杀死所有子进程&当我跑步时孙子进程 “supervisorctl stop xxx”停止我的主要流程?
答案 0 :(得分:1)
您有几个选择:
修改您的Python程序,以便当它们收到SIGTERM
之类的信号时,会明确地将它们传播给孩子们。
启用supervisord
选项stopasgroup
和killasgroup
。这些选项documented为向整个流程组发送信号,而不仅仅是一个流程。