systemd unit'leri ve systemctl
Bir systemd unit'i, çoğu Linux dağıtımının init sistemi olan systemd'nin yönettiği bir yapılandırma nesnesidir: servisler, soketler, zamanlayıcılar, bağlamalar ve daha fazlası. Unit'ler /etc/systemd/system/<name>.service gibi unit dosyalarıyla tanımlanır ve systemctl komutuyla kontrol edilir.
1Unit türleri
.service bir program çalıştırır, .socket bir bağlantı geldiğinde bir servis başlatır, .timer bir unit'i belirli bir zamanda çalıştırır, .mount ve .automount dosya sistemlerini yönetir, .target unit'leri multi-user.target gibi durumlarda gruplandırır.
2Unit dosyalarının bulunduğu yer
Paketler unit'leri /usr/lib/systemd/system (veya /lib/systemd/system) altına kurar. Yerel değişiklikler, önceliğe sahip olan /etc/systemd/system dizinine ait olmalıdır. systemctl edit <unit>, paketlenen dosyayı değiştirmek yerine bir ek geçersiz kılma (drop-in override) oluşturur.
3Günlük komutlar
systemctl status <unit> durumu ve son günlük satırlarını gösterir. 'start', 'stop' ve 'restart' hemen işlem yapar; 'enable' ve 'disable' açılışta başlatılmayı kontrol eder; 'enable --now' her ikisini de yapar. systemctl --failed başarısız olan unit'leri listeler ve systemctl daemon-reload değişikliklerden sonra unit dosyalarını yeniden okur.
Hata veren bir servis nasıl kontrol edilir
- Başarısız unit'leri listeleme:
systemctl --failed - Durumu ve son mesajları gösterme:
systemctl status <unit> - Bu açılışa ait günlüğün tamamını okuma:
journalctl -u <unit> -b - Yapılandırma düzeltildikten sonra:
sudo systemctl restart <unit>
Dikkat
- Paketlenmiş unit'leri
/usr/lib/systemd/systemiçindeki dosyaları düzenleyerek değil,systemctl editile değiştirin: güncellemeler bunları üzerine yazar. - systemd-journald veya dbus gibi bilmediğiniz unit'leri devre dışı bırakmayın.
İlgili makaleler
- journalctl ve systemd günlüğüjournalctl ile günlüklerin nasıl okunacağı, günlüğün ne kadar alan kapladığının nasıl kontrol edileceği ve --vacuum seçenekleriyle güvenli bir şekilde nasıl küçültüleceği.
- cron ve crontabcron'un zamanlanmış işleri nasıl çalıştırdığı, beş crontab zaman alanı, sistem cron dosyalarının bulunduğu yerler ve systemd zamanlayıcılarının karşılaştırması.
- logrotatelogrotate aracının ne iş yaptığı, /etc/logrotate.conf ve /etc/logrotate.d üzerindeki yapılandırmasının nasıl çalıştığı ve bir kuralın güvenli bir şekilde nasıl test edileceği.
Kaynaklar
- systemctl(1) man7.org
- systemd.unit(5) man7.org
- systemd.timer(5) man7.org
Son gözden geçirme: