¿Qué señal usa upstart / initctl para reiniciar un trabajo?

10

¿Qué señal upstart/ initctluso para reiniciar un trabajo? Además, ¿hay alguna manera de especificar que se debe usar SIGHUP?

Alternativamente, ¿hay alguna manera de definir un reloadcomando personalizado que envíe un SIGHUP? ¿O necesito salir upstartpara hacer eso?

David Eyk
fuente
Creo que es SIGQUIT; La respuesta a SIGHUP es específica de la aplicación en la mayoría de los casos.
Chris S
Eso tendría sentido. Ver mis ediciones de aclaraciones.
David Eyk

Respuestas:

23

¿Qué señal usará upstart / initctl para reiniciar un trabajo?

SIGTERM

$ strace -fp `pgrep cron` 2> ~/strace &
$ initctl restart cron
$ cat ~/strace
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {0x804a280, [CHLD], SA_RESTART}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({60, 0}, {57, 153662204})     = ? ERESTART_RESTARTBLOCK (To be restarted)
--- SIGTERM (Terminated) @ 0 (0) ---
Process 2275 detached

Además, ¿hay alguna manera de especificar que se debe usar SIGHUP?

Utilizar: initctl reload

Alternativamente, ¿hay alguna manera de definir un comando de recarga personalizado que envíe un SIGHUP?

Utilizar: initctl reload

¿O tengo que salir del advenedizo para hacer eso?

Usar initctl reloado kill/killall -HUP

bindbn
fuente
Muy minucioso. Gracias. ¡Supongo que podría haber encontrado algo de eso en la página del manual!
David Eyk
Se actualiza a SIGKILL si el servicio no se detiene a tiempo. "Detener un trabajo implica enviarle SIGTERM ... Sin embargo, si el servicio tarda más que matar el tiempo de espera segundos (predeterminado, 5 segundos), se enviará SIGKILL" upstart.ubuntu.com/cookbook/#pre-stop
scipilot