Systemd, birçok Linux dağıtımında hizmet süreçlerinin başlatılmasını ve izlenmesini yönetir. Bir uygulamanın terminalde çalışması, systemd altında aynı şekilde başlayacağını göstermez. Kullanıcı, çalışma dizini, ortam ve dosya izinleri farklı olabilir. Ayrıca hizmeti şimdi başlatmak ile sistem açılışında başlatılacak şekilde tanımlamak ayrı işlemlerdir. Bu rehber günlük yönetim kavramlarını ve doğrulama sırasını açıklar. Uygulamanızın özel hizmet dosyası varsa üreticinin verdiği tanımı esas alın; rastgele bir örneği root yetkisiyle çalıştırmayın.
Ön koşullar
Uygulamanın çalıştırılacak komutunu, gerekli kullanıcıyı, dosya konumlarını ve bağımlılıklarını belirleyin. Servis için mümkün olduğunca görevle sınırlı kimlik kullanın. Şifre veya tokenları herkese okunabilir unit dosyasına koymayın. Mevcut hizmet tanımını systemctl cat uygulama.service ile okuyabilirsiniz; uygulama adı yer tutucudur. Daha önce kurulmuş paket dosyasını değiştirmek yerine sistemin desteklediği override yöntemini değerlendirin. Çalışan hizmetin etkisini ve geri dönüş planını bakım öncesi kaydedin.
Yönetim adımları
Test işlemlerini kaydedin ve hizmeti kimin yöneteceğini belirleyin. Elle yapılan değişiklik otomasyon tarafından geri alınabiliyorsa iki yöntemi uzlaştırmadan devam etmeyin. Tek sorumlu yapılandırma kaynağı belirsizliği ve tekrarlı müdahaleyi azaltır.
- Unit dosyasında User, WorkingDirectory ve ExecStart alanlarının gerçek ortamla uyumunu kontrol edin. Mutlak komut yolu kullanmak belirsizliği azaltır. Terminaldeki kullanıcı PATH değerine veya shell başlangıç dosyasına güvenmeyin. Uygulamanın yazması gereken dizinlerin izinleri doğru kullanıcıya verilmelidir; tüm sistemi yazılabilir yapmayın. Hizmetin çalışma türü, uygulamanın uzun süre açık kalmasına veya tek işlem yapıp çıkmasına göre seçilir. Type değerini yalnız kopyalanmış örnekten belirlemeyin.
- Yapılandırma değişikliğini kontrol edin.
systemd-analyze verifyilgili unit dosyasını incelemeye yardımcı olabilir; komut ve seçenekler kullanılan sürüme göre doğrulanmalıdır. Dosya adını ve konumunu yanlış hizmete uygulamayın. Unit tanımını değiştirdikten sonrasudo systemctl daemon-reloadyöneticiye dosyaları yeniden okutabilir. Bu işlem uygulamanın kendi yapılandırmasını yeniden yüklemez ve hizmeti otomatik yeniden başlatmaz. Üç farklı işlemi tek bir güncelleme adımı sanmak teşhisi zorlaştırır. - Planlı biçimde hizmeti başlatın veya gerekli yeniden yükleme yöntemini uygulayın.
sudo systemctl start uygulama.serviceyalnız örnek hedefle şimdi başlatmayı anlatır. Üretim veri tabanı veya SSH gibi kritik hizmeti test için durdurmayın.systemctl status uygulama.serviceve son günlükleri inceleyin. Active durumu uygulamanın müşteriye doğru cevap verdiğini tek başına kanıtlamaz. Gerçek HTTP, kuyruk veya işlev testi gereklidir. Eksik dosya veya izin hatasını loglardan ayırın. - Açılış politikasını ayrıca belirleyin.
systemctl is-enabled uygulama.servicemevcut durumu okumaya yardımcı olur; enable başlatma anından farklıdır. Her uygulamanın sürekli açık kalması gerekmez. Bağımlı hizmetler ve veri erişimi hazır olmadan işleme başlamak hataya yol açabilir. Restart politikasını sürekli çöküşü gizlemek için sınırsız agresif tekrar şeklinde kurmayın. Uygulama tekrar başlarken aynı işi iki kez çalıştırabiliyorsa veri bütünlüğü ayrıca değerlendirilmelidir.
Sonuç kontrolü
Kontrollü ortamda veya bakım sırasında açılış davranışını doğrulayın; yalnız enable komutunun başarılı çıkışına güvenmeyin. Üretimde plansız reboot yapmak gerekli değildir. Günlük, uygulama sağlık testi ve izleme birlikte değerlendirilmelidir. Hizmet sırlarının süreç çıktısında görünmediğini kontrol edin. Değişiklik sonrası kullanılan unit ve override dosyalarını kayıt altına alın. Sorun sürüyorsa servis kullanıcı kimliği, çalışma dizini ve gerçek komutla terminal koşullarını karşılaştırmak genellikle daha iyi teşhis sağlar.
Sık sorulan sorular
Enable hizmeti hemen başlatır mı?
Enable ile start farklı işlemlerdir; kullanılan seçenekler birlikte çalıştırabilir. Komutun kapsamını okuyun ve mevcut çalışma durumunu ayrıca kontrol edin.
Daemon-reload uygulama ayarını yeniler mi?
Yalnız systemd unit tanımlarının yeniden okunmasıyla ilgilidir. Uygulamanın kendi reload veya restart gereksinimi ayrıca belirlenir. Her değişiklikte gereksiz servis kesintisi oluşturmayın.
Resmi kaynaklar
Süreç özeti
Systemd hizmetini başlatma ve açılış davranışını yönetme
| Adım | Kontrol |
|---|---|
| 1 | Hizmet tanımı |
| 2 | Yetkili kullanıcı |
| 3 | Yapılandırma kontrolü |
| 4 | Başlatma testi |
| 5 | Açılış politikası |
