Arka fon
systemd
Yeni bir hizmet için, foo_daemon
bazen "kötü durum" durumuna giren ve SIGTERM
(muhtemelen özel sinyal işleyicisi nedeniyle) ölmeyecek bir komut dosyası oluşturmam istendi . Bu, geliştiricilere, hizmeti şu şekilde başlatmaları / durdurmaları / yeniden başlatmaları talimatı verildiği için sorunludur:
systemctl start foo_daemon.service
systemctl stop foo_daemon.service
systemctl restart foo_daemon.service
Sorun
Bazen, foo_daemon
kötü duruma geçme nedeniyle , onu zorla öldürmek zorundayız:
systemctl kill -s KILL foo_daemon.service
Soru
Komutumu nasıl ayarlayabilirim systemd
, foo_daemon
böylece bir kullanıcı hizmeti durdurmaya / yeniden başlatmaya çalıştığında systemd
:
foo_daemon
Üzerinden zarif bir kapatma girişiminde bulununSIGTERM
.foo_daemon
Tamamlanması / kapatılması için 2 saniyeye kadar süre verin .- Süreci hala yaşıyorsa,
foo_daemon
üzerinden zorla kapatmaya çalışınSIGKILL
(bu nedenle, PID'nin geri dönüştürülmesi ve yanlış PID'ye karşısystemd
sorun oluşması riski yokturSIGKILL
). Test ettiğimiz cihaz hızlı bir şekilde sayısız işlemi gerçekleştiriyor / çatal kullanıyor; bu nedenle, PID geri dönüşümüyle ilgili bir soruna neden olan nadir ama çok gerçek bir endişe var. - Uygulamada, sadece PID geri dönüşümüyle ilgili paranoyaklığım varsa, sadece
SIGKILL
'PID'e geri dönüşümlü bir PID'yi öldürmekten endişe duymadan' işlemine karşı bir senaryo yayınlamam uygun olur .