# systemd unit'leri ve systemctl

> systemd unit'inin ne olduğu, yaygın unit türleri ve systemctl ile servislerin nasıl başlatılacağı, durdurulacağı, etkinleştirileceği ve inceleneceği.

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.

## Unit 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.

## Unit 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.

## Gü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

- [systemctl(1)](https://man7.org/linux/man-pages/man1/systemctl.1.html)
- [systemd.unit(5)](https://man7.org/linux/man-pages/man5/systemd.unit.5.html)
- [systemd.timer(5)](https://man7.org/linux/man-pages/man5/systemd.timer.5.html)

Son güncelleme: 2026-10-08
URL: https://raincleaner.eu/tr/wiki/linux/systemd-units
