Sinyal apa yang digunakan pemula / initctl untuk memulai kembali pekerjaan?

10

Sinyal apa yang akan upstart/ initctldigunakan untuk memulai kembali pekerjaan? Lebih lanjut, apakah ada cara untuk menentukan bahwa SIGHUP harus digunakan?

Sebagai alternatif, apakah ada cara untuk mendefinisikan reloadperintah khusus yang akan mengirim SIGHUP? Atau apakah saya harus pergi ke luar upstartuntuk melakukan itu?

David Eyk
sumber
Saya percaya itu SIGQUIT; Respons terhadap SIGHUP adalah spesifik aplikasi dalam kebanyakan kasus.
Chris S
Itu masuk akal. Lihat hasil edit klarifikasi saya.
David Eyk

Jawaban:

23

Sinyal apa yang akan digunakan pemula / initctl untuk memulai kembali pekerjaan?

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

Lebih lanjut, apakah ada cara untuk menentukan bahwa SIGHUP harus digunakan?

Menggunakan: initctl reload

Sebagai alternatif, apakah ada cara untuk mendefinisikan perintah muat ulang khusus yang akan mengirim SIGHUP?

Menggunakan: initctl reload

Atau apakah saya perlu keluar dari pemula untuk melakukan itu?

Gunakan initctl reloadatau kill/killall -HUP

bindbn
sumber
Sangat teliti. Terima kasih. Kurasa aku bisa menemukan itu di halaman manual!
David Eyk
Itu ditingkatkan menjadi SIGKILL jika layanan tidak berhenti tepat waktu. "Menghentikan pekerjaan melibatkan pengiriman SIGTERM ke sana. ... Namun, jika layanan ini membutuhkan waktu lebih dari membunuh detik batas waktu (default, 5 detik) maka itu akan dikirim SIGKILL" upstart.ubuntu.com/cookbook/#pre-stop
scipilot