Supervisor: 将 SIGKILL 发送给 supervisord 不会终止子进程

创建于 2012-11-21  ·  5评论  ·  资料来源: Supervisor/supervisor

在运行 supervisor 3.0b1 的 Linux 上,向 supervisord 进程发送 SIGKILL 不会终止其所有子进程,即通过配置文件启动的进程。

最有用的评论

FWIW,如果主管是 pid 19285:

  kill -9 -19285

否定 pid 会向整个进程组发送终止信号。

所有5条评论

SIGKILL 不能被困。 这证明了它:

$ python
>>> import signal
>>> def handler(signum, frame):
...   pass
... 
>>> signal.signal(signal.SIGKILL, handler)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RuntimeError: (22, 'Invalid argument')
>>>

我们无法在代码中添加或更改任何内容来改变它。

当然,但为什么杀死父进程不会杀死子进程? 我的意思是在 Linux 级别,而不是通过 supervisord 拦截 SIGKILL 并杀死它的孩子。

FWIW,如果主管是 pid 19285:

  kill -9 -19285

否定 pid 会向整个进程组发送终止信号。

我试图实现同样的目标。 发送 SIGTERM 而不是 SIGKILL 对我有用。
我更喜欢“SIGTERM”而不是“带有否定进程ID的SIGKILL”,因为它允许正常关闭。

此页面是否有帮助?
0 / 5 - 0 等级