Saya mulai mengubah semua sistem kami untuk menggunakan pemula untuk mengelola berbagai proses aplikasi kami. Satu hal yang selalu saya lewatkan adalah kemampuan untuk mengirim sinyal berbeda ke proses stop
atau restart
peristiwa.
Misalnya, kami menjalankan proses web kami dengan Unicorn . Unicorn memiliki API penanganan sinyal yang bagus. Ketika saya ingin memuat ulang proses dengan anggun saya mengirim sinyal USR2 master pid. Untuk mematikannya dengan anggun saya mengirim perintah QUIT. TERM (sinyal berhenti default pemula) merupakan shutdown langsung.
Contoh lain menggunakan Resque . Untuk mematikan pekerja dengan anggun saya mengirimkannya sinyal QUIT. Sinyal JANGKA lagi menyebabkan shutdown segera, apakah anak pekerja itu bercabang dua atau tidak.
Apakah pemula mendukung sinyal khusus? Sepertinya saya tidak dapat menemukannya di mana pun, yang membuat saya khawatir bahwa saya menggunakan "alat yang salah untuk pekerjaan itu".
sumber
reload signal SIGUSR2
, tetapi membutuhkan pemula v 1.10.0.Mulai dari v1.10.0 pemula Anda dapat mendefinisikan "sinyal isi ulang".
https://launchpad.net/upstart/1.x/1.10.0
Versi ini tersedia di ubuntu mulai v13.10 ... Saya menggunakan instruksi ini untuk memutakhirkan instance EC2 saya:
/ubuntu/302762/upgrading-13-04-to-13-10
Saya menggunakan rails + puma dan melakukan reload yang anggun dengan direktif ini di file /etc/init/app-1.conf saya:
sumber