Quale segnale utilizza upstart / initctl per riavviare un lavoro?


10

Quale segnale verrà upstart/ initctlutilizzato per riavviare un lavoro? Inoltre, c'è un modo per specificare che SIGHUP dovrebbe essere usato?

In alternativa, c'è un modo per definire un reloadcomando personalizzato che invierà un SIGHUP? O devo uscire upstartper farlo?


Credo che sia SIGQUIT; La risposta a SIGHUP è specifica dell'applicazione nella maggior parte dei casi.
Chris S,

Ciò avrebbe senso. Vedi le mie modifiche di chiarimento.
David Eyk,

Risposte:


23

Quale segnale utilizzerà upstart / initctl per riavviare un lavoro?

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

Inoltre, c'è un modo per specificare che SIGHUP dovrebbe essere usato?

Uso: initctl reload

In alternativa, c'è un modo per definire un comando di ricarica personalizzato che invierà un SIGHUP?

Uso: initctl reload

O devo uscire da upstart per farlo?

Usa initctl reloado kill/killall -HUP


Molto approfondito. Grazie. Immagino che avrei potuto trovarne un po 'nella pagina man!
David Eyk,

Viene aggiornato a SIGKILL se il servizio non si ferma in tempo. "L'arresto di un lavoro implica l'invio di SIGTERM ad esso. ... Tuttavia, se il servizio richiede più di un arresto dei secondi di timeout (impostazione predefinita, 5 secondi), verrà inviato SIGKILL" upstart.ubuntu.com/cookbook/#pre-stop
scipilot,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.