Supervisor: Enviar SIGKILL al supervisor no termina a los niños

Creado en 21 nov. 2012  ·  5Comentarios  ·  Fuente: Supervisor/supervisor

En Linux que ejecuta el supervisor 3.0b1, enviar un SIGKILL al proceso supervisor no finaliza todos sus procesos secundarios, es decir, los procesos iniciados a través del archivo de configuración.

Comentario más útil

FWIW, si el supervisor es pid 19285:

  kill -9 -19285

Negar el pid envía la señal de interrupción a todo el grupo de procesos.

Todos 5 comentarios

SIGKILL no puede quedar atrapado. Esto lo demuestra:

$ 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')
>>>

No hay nada que podamos agregar o cambiar en nuestro código para cambiar eso.

Ciertamente, pero ¿por qué matar el proceso padre no mata al hijo? Me refiero al nivel de Linux, no a través de un supervisor que intercepta a SIGKILL y mata a sus hijos.

FWIW, si el supervisor es pid 19285:

  kill -9 -19285

Negar el pid envía la señal de interrupción a todo el grupo de procesos.

Estaba tratando de lograr lo mismo. Enviar SIGTERM en lugar de SIGKILL funcionó para mí.
Preferiría el "SIGTERM" sobre "SIGKILL con ID de proceso negado" ya que permite un cierre ordenado.

¿Fue útil esta página
0 / 5 - 0 calificaciones