Какой сигнал использует upstart / initctl для возобновления работы?

10

Какой сигнал будет upstart/ initctlиспользуется для возобновления работы? Кроме того, есть ли способ указать, что SIGHUP следует использовать?

Кроме того, есть ли способ определить пользовательскую reloadкоманду, которая будет отправлять SIGHUP? Или мне нужно выйти на улицу, upstartчтобы сделать это?

Дэвид Эйк
источник
Я верю, что это SIGQUIT; Ответ на SIGHUP зависит от приложения в большинстве случаев.
Крис С
Это имело бы смысл. Смотрите мои разъяснения правки.
Дэвид Эйк

Ответы:

23

Какой сигнал будет использовать upstart / initctl для возобновления работы?

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

Кроме того, есть ли способ указать, что SIGHUP следует использовать?

Использование: initctl reload

Кроме того, есть ли способ определить пользовательскую команду перезагрузки, которая будет отправлять SIGHUP?

Использование: initctl reload

Или мне нужно выйти из выскочки, чтобы сделать это?

Используйте initctl reloadили kill/killall -HUP

bindbn
источник
Очень тщательно Спасибо. Думаю, я мог бы найти кое-что из этого на странице руководства!
Дэвид Эйк
Он обновляется до SIGKILL, если служба не останавливается вовремя. «Остановка задания включает в себя отправку SIGTERM на него ... Однако, если служба занимает больше, чем время ожидания истечения времени
Скипилот