Çıkış yaptıktan sonra ayakta kalan systemd servisleri
Güncelleme

Enable ve start farkı, yeniden başlatma politikaları ve journal: her DevOps yeni başlayanın asgari systemd bilgisi.
Her yeni başlayan aynı hayaletle tanışır: servis sen bakarken çalışır, gece ya da yeniden başlatmadan sonra ölür. Neden neredeyse hiçbir zaman uygulama değildir. Süreç başlatmakla servis kurmak arasındaki farktır.
Start şimdi, enable kalıcı
start birimi bu açılışta hemen çalıştırır. enable açılışa bağlar, her yeniden başlatmadan sonra geri gelir. Üretim ikisini de ister: şimdi başlat, sonrası için enable et. Devraldığın makinede iki durumu da kontrol et, çünkü start edilmiş ama enable edilmemiş servis bir yeniden başlatma uzağında kesintidir.
Limitli yeniden başlatma
Always ya da on-failure politikası çökmeleri kısa hıçkırıklara çevirir. Ama kontrolsüz yeniden başlatma döngüsü kırık yapılandırmada binlerce log satırı yazar, gerçek hatayı saklar. Politikayı patlama limitiyle eşle: kısa pencerede birkaç yeniden başlatma, sonra dur ve insan bakana kadar durmuş kal.
Çalışılmış örnek: kurgusal bir gece kesintisi
Aşağıdaki bağlam kurgusaldır. Kurgusal ParcelTrack servisi sanal makinede el yordamı başlatılmış süreçle çalışır. Haftalarca çalışır, sonra host 03.00 yamasıyla yeniden başlar, servis geri gelmez. Kimse uyanmaz, çünkü ayakta olmanın tanımı yoktur.
Sabah teşhisi on dakika sürer: süreç start edilmiş, hiç enable edilmemiş, birim dosyası yoktur. Düzeltme küçük bir birim dosyasıdır: çalışma dizini, çalıştıran kullanıcı, arızada limitli yeniden başlatma, enable artı start. Doğrulama bilerek yeniden başlatma testidir: yeniden başlat, servisin tek başına döndüğünü doğrula, kontrolü yaz.
Kontrol listesi: başıboş bırakılabilir servis
- Birim dosyası var, çalıştıran kullanıcı ve çalışma dizini ayarlı.
- Hem şimdi başlamış hem açılışa enable edilmiş.
- Arızada limitli yeniden başlatma.
- Yeniden başlatma testi tek başına döndüğünü kanıtlamış.
İlgili okuma
- DevOps Foundations Modül 1'de servisleri anlatır.
- Açılışta kırılınca: Birim ve Ortamdan Açılış Arızası.
Net yanıtlar
Sık sorulan sorular
Enable ile start farkı nedir?
Start servisi şimdi çalıştırır. Enable açılışta başlamasını sağlar. Start edilmiş ama enable edilmemiş servis ilk yeniden başlatmada ölür.
Servisler hep yeniden başlamalı mı?
Genelde evet, Restart=on-failure ile ve kırık yapılandırmanın sonsuz dönmemesi için patlama limitiyle.
Loglarım nereye gitti?
Journal'a. Yapılandırmaya dokunmadan önce birim durumuna, sonra o birimin son journal satırlarına bak.