Jakiego sygnału używa upstart / initctl do ponownego uruchomienia zadania?


10

Jakiego sygnału użyje upstart/ initctlużyje do ponownego uruchomienia zadania? Ponadto, czy jest jakiś sposób na określenie, że należy użyć SIGHUP?

Alternatywnie, czy istnieje sposób zdefiniowania niestandardowego reloadpolecenia, które wyśle ​​SIGHUP? Czy też muszę upstartto zrobić, żeby to zrobić?


Wierzę, że to SIGQUIT; Odpowiedź na SIGHUP jest w większości przypadków specyficzna dla aplikacji.
— Chris S

To miałoby sens. Zobacz moje zmiany wyjaśniające.
— David Eyk,

Odpowiedzi:


23

Jakiego sygnału użyje upstart / initctl do ponownego uruchomienia zadania?

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

Ponadto, czy jest jakiś sposób na określenie, że należy użyć SIGHUP?

Posługiwać się: initctl reload

Alternatywnie, czy istnieje sposób zdefiniowania niestandardowego polecenia przeładowania, które wyśle ​​SIGHUP?

Posługiwać się: initctl reload

Czy też muszę wyjść poza upstart, aby to zrobić?

Użyj initctl reloadlub kill/killall -HUP


Bardzo dokładny. Dziękuję Ci. Chyba mogłem znaleźć trochę tego na stronie podręcznika!
— David Eyk,

Jest uaktualniony do SIGKILL, jeśli usługa nie zatrzymuje się na czas. „Zatrzymanie zadania wymaga wysłania do niego SIGTERM. ... Jeśli jednak usługa zajmie więcej niż sekundę zabicia (domyślnie 5 sekund), zostanie wysłana SIGKILL” upstart.ubuntu.com/cookbook/#pre-stop
— scipilot
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.