Özgün teknik kapak: Linux systemd Servis Hatalarını journalctl ile Analiz Etmek

Linux systemd Servis Hatalarını journalctl ile Analiz Etmek

Linux üzerinde bir servis beklenmedik şekilde durduğunda ilk işlemimiz hemen systemctl restart çalıştırmak olmamalı.

Önce servis durumu ve journal kayıtları üzerinden hatanın nedenini araştırmak gerekir.

İlk kontrol

Örnekte nginx servisini inceliyoruz. Aynı adımlar farklı systemd servisleri için de kullanılabilir.

systemctl status nginx --no-pager -l
systemctl show nginx -p ActiveState -p SubState -p ExecMainStatus
journalctl -u nginx -n 100 --no-pager

Servisin exit code değeri, başarısız başlatma zamanı ve aldığı sinyal önemli ipuçları verebilir.

Belirli zaman aralığını inceleme

Sorun saat 18:00 civarında başladıysa:

journalctl -u nginx --since '2026-11-10 18:00:00' 
  --until '2026-11-10 19:00:00' --no-pager

Zaman dilimi farklılıklarına ve journal kayıtlarının kalıcılık ayarlarına dikkat edin.

Önceki açılış kayıtları

Servis reboot sonrasında çalışmamaya başladıysa:

journalctl --list-boots
journalctl -b -1 -u nginx --no-pager

Önceki boot kayıtlarının bulunabilmesi journal yapılandırmasına bağlıdır.

Yaygın nedenler

  • Uygulama yapılandırma hatası.
  • Port çakışması.
  • Dosya izinleri veya SELinux engeli.
  • Disk veya inode doluluğu.
  • Başka bir servise bağımlılık.

Port dinleyicilerini incelemek için:

ss -lntp

Dosya sistemi durumunu kontrol etmek için:

df -h
df -i

Değişiklikten önce

Mevcut servis tanımını görmek için systemctl cat nginx kullanılabilir.

Üretimde yeniden başlatma yapılacaksa uygulama etkisini ve bakım penceresini değerlendirin.

Kaynak: systemd journalctl ve systemctl resmi belgeleri.