Herhangi bir modern Linux'ta, başlamayan bir hizmet nedenini çoktan tam olarak yazmıştır. O, günlüğün içindedir; insanların kayıtlarda hiçbir şey yok demesinin sebebi ise journalctl'i argümansız çalıştırıp büyüklüğü karşısında pes etmiş olmalarıdır.
İşi gören beş bayrak
journalctl -u nginx -n 50 --no-pager # the last 50 lines for one unit
journalctl -u nginx -f # follow it live
journalctl -u nginx --since "10 min ago"
journalctl -p err -b # errors only, this boot
journalctl -b -1 # the boot BEFORE this one
Açıklanamayan bir yeniden başlatmadan sonra uzanacağınız şey -b -1'dir: makinenin düşmeden hemen önce ne söylediğini gösterir; mevcut açılışta bunlar yoktur.
Bir hizmet başlamıyorsa
systemctl status app --no-pager -l
journalctl -u app -n 100 --no-pager
status çıkış kodunu ve son birkaç satırı gösterir; gerisini günlük gösterir. Hemen başarısız olan bir birim neredeyse her zaman bir yol, bir izin ya da kullanımdaki bir kapıdır - üçü de bunu açık sözlerle söyler.
Diskteki günlük
Varsayılan olarak uçucu olabilir - bellekte tutulur ve yeniden başlatmada kaybolur; yani tam da ona ihtiyaç duyduğunuz anda. Onu kalıcı yapın.
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journald
journalctl --disk-usage
Diski doldurmasını önleyin
# /etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=1month
Kendi dosyasını yazan bir uygulama - Nginx erişim kayıtları, PHP-FPM yavaş kayıtları - günlükte değildir. Onlar /var/log içindedir ve ayrıca döndürülür; bakınız kayıt döndürme.