Que sinal o upstart / initctl usa para reiniciar um trabalho?

10

Qual sinal upstart/ initctlusará para reiniciar um trabalho? Além disso, existe alguma maneira de especificar que o SIGHUP deve ser usado?

Como alternativa, existe uma maneira de definir um reloadcomando personalizado que enviará um SIGHUP? Ou preciso sair upstartpara fazer isso?

David Eyk
fonte
Eu acredito que é SIGQUIT; A resposta ao SIGHUP é específica da aplicação na maioria dos casos.
Chris S
Isso faria sentido. Veja minhas edições de esclarecimentos.
David Eyk

Respostas:

23

Que sinal o upstart / initctl usará para reiniciar um trabalho?

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

Além disso, existe alguma maneira de especificar que o SIGHUP deve ser usado?

Usar: initctl reload

Como alternativa, existe uma maneira de definir um comando de recarregamento personalizado que enviará um SIGHUP?

Usar: initctl reload

Ou preciso sair do iniciante para fazer isso?

Use initctl reloadou kill/killall -HUP

bindbn
fonte
Muito completo. Obrigado. Acho que eu poderia ter encontrado um pouco disso na página de manual!
David Eyk
É atualizado para um SIGKILL se o serviço não parar a tempo. "A interrupção de um trabalho envolve o envio do SIGTERM para ele. ... No entanto, se o serviço demorar mais do que o tempo esgotado
scipilot