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?


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


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.