Rain WikiWindows · Linux · Android

systemd unit'leri ve systemctl

Hizmetsystemd kullanan dağıtımlar

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

  1. Başarısız unit'leri listeleme: systemctl --failed
  2. Durumu ve son mesajları gösterme: systemctl status <unit>
  3. Bu açılışa ait günlüğün tamamını okuma: journalctl -u <unit> -b
  4. Yapılandırma düzeltildikten sonra: sudo systemctl restart <unit>

Dikkat

  • Paketlenmiş unit'leri /usr/lib/systemd/system içindeki dosyaları düzenleyerek değil, systemctl edit ile değiştirin: güncellemeler bunları üzerine yazar.
  • systemd-journald veya dbus gibi bilmediğiniz unit'leri devre dışı bırakmayın.

Kaynaklar

  1. systemctl(1) man7.org
  2. systemd.unit(5) man7.org
  3. systemd.timer(5) man7.org

Son gözden geçirme: