如何杀死子进程&由主管控制的孙子进程

时间:2016-05-05 09:26:57

标签: python process supervisor gipc

在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”停止我的主要流程?

1 个答案:

答案 0 :(得分:1)

您有几个选择:

  1. 修改您的Python程序,以便当它们收到SIGTERM之类的信号时,会明确地将它们传播给孩子们。

  2. 启用supervisord选项stopasgroupkillasgroup。这些选项documented为向整个流程组发送信号,而不仅仅是一个流程。