Pardus /etc/systemd/ → Servis Yönetiminin Merkezi

 Linux işletim sistemlerinde servislerin (daemon) nasıl başlatılacağı, durdurulacağı, yeniden başlayacağı ve sistem açılış/kapanış süreçlerine nasıl entegre olacağı systemd tarafından kontrol edilir.

Pardus (Debian tabanlı) dağıtımlarda systemd varsayılan servis yöneticisidir.

Bu eğitim makalesi ile /etc/systemd/ dizinini, yapısını, servis dosyalarını, hedef (target) yapılarını, journal loglarını ve yönetim komutlarını detaylı şekilde öğreneceksiniz.


🔹 1. systemd Nedir?

Systemd, Linux sistemlerinde:

  • Servisleri yönetir

  • Boot (başlangıç) sırasını belirler

  • Log sistemini sağlar (journald)

  • Zamanlayıcı (timer) oluşturur

  • Bağımlılıkları çözer

  • System-wide konfigürasyonları kontrol eder

PID 1 olarak çalışan ana süreçtir.


🔹 2. /etc/systemd/ Dizini Tam Olarak Neyi Tutar?

https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Systemd_components.svg/500px-Systemd_components.svg.png?utm_source=chatgpt.com

/etc/systemd/ dizini, systemd’nin kullanıcı tarafından özelleştirilen ayarlarının bulunduğu dizindir.
Burada yapılan değişiklikler sistem güncellemelerinden etkilenmez.


📁 Dizinin Alt Klasörleri

2.1 /etc/systemd/system/

➡️ En önemli klasördür.

  • Yerel servis dosyaları burada tutulur.

  • Bu klasördeki dosyalar /lib/systemd/system altındaki dosyaların üzerinde önceliklidir.

  • Yani override (üstüne yazma) buradan yapılır.

Örnekler:

  • Custom servis dosyaları
    /etc/systemd/system/tahta-kapat.service

  • Timer dosyaları
    /etc/systemd/system/backup.timer

  • Mount birimleri
    /etc/systemd/system/mnt-paylasim.mount

  • Otomatik çalıştırılan scriptler için unit dosyaları


2.2 /etc/systemd/user/

Kullanıcı seviyesinde (system-wide olmayan) servisler için kullanılır.

ÖRNEK:
Her kullanıcı giriş yaptığında çalışan küçük bir program.


2.3 /etc/systemd/network/

Eğer systemd-networkd kullanıyorsanız network ayarları buradadır.

Dosya tipleri:

  • .network

  • .netdev

  • .link


2.4 /etc/systemd/resolved.conf.d/

DNS yapılandırması yapılır (systemd-resolved aktifse).


2.5 /etc/systemd/logind.conf.d/

Giriş/çıkış, oturum yönetimi (idle süreleri, kapanma, uyku davranışları).


🔹 3. Unit Dosyası Nedir?

Systemd’nin kullandığı yapılandırma dosyalarına unit denir.

Unit türleri:

Unit TürüGörevi
serviceServis yönetir
socketSoket üzerinden servis tetikleme
deviceDonanım yönetimi
mountBir dosya sistemini bağlama
automountGerekince otomatik bağlama
timerServisleri zamanlama
targetBoot seviyeleri
pathDosya/dizin değişimini izleme
snapshotAnlık sistem durumu

🔹 4. Servis Dosyalarının Yapısı

Örnek: /etc/systemd/system/tahta-kapat.service

[Unit]
Description=Pardus'u otomatik kapatma servisi
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/poweroff
[Install]
WantedBy=multi-user.target

✔ Bölümlerin Anlamı

[Unit]

Servisin genel bilgileri:

  • Açıklama

  • Başlama sırası

  • Bağımlılıklar

[Service]

Asıl çalışacak komutlar burada.

  • ExecStart

  • ExecStop

  • ExecReload

  • Type (simple, oneshot, forking vb.)

[Install]

Servisin hangi hedef altında çalışacağı:

  • multi-user.target (genelde sunucu modunda)

  • graphical.target (masaüstü)

  • sockets.target

  • timers.target


🔹 5. systemd Yönetim Komutları

✔ Servis Başlatma/Durdurma

sudo systemctl start servisadi
sudo systemctl stop servisadi
sudo systemctl restart servisadi

✔ Servisin Açılışta Çalışmasını Aç/Kapat

sudo systemctl enable servisadi
sudo systemctl disable servisadi

✔ Durum Kontrolü

systemctl status servisadi

🔹 6. systemctl Daemon Reload

Yeni bir servis dosyası oluşturduğunuzda zorunludur:

sudo systemctl daemon-reload

🔹 7. Timer Dosyaları (Cron’un Modern Hali)

https://blog.techiescamp.com/content/images/2025/01/image-59.png?utm_source=chatgpt.com

Timer dosyası bir servis dosyasını zamanlamak içindir.

Örnek: Her gün 17:00’de tahtayı kapatma

tahta-kapat.service
tahta-kapat.timer

Timer dosyası:

[Unit]
Description=Her gün saat 17:00'de kapat
[Timer]
OnCalendar=*-*-* 17:00:00
Persistent=true
[Install]
WantedBy=timers.target

Timer’ı aktifleştirme:

sudo systemctl enable tahta-kapat.timer
sudo systemctl start tahta-kapat.timer

🔹 8. Target (Runlevel Karşılığı)

Systemd, Runlevel yerine target kullanır:

TargetEski RunlevelAnlamı
poweroff.target0Sistemi kapat
rescue.target1Kurtarma modu
multi-user.target3Çoklu kullanıcı (sunucu modu)
graphical.target5Grafik arayüz
reboot.target6Yeniden başlat

🔹 9. journalctl ile Log Analizi

Systemd loglarını journalctl yönetir.

Tüm loglar:

journalctl

Bir servise ait loglar:

journalctl -u servisadi

Son 100 log:

journalctl -u servisadi -n 100

Canlı takip:

journalctl -fu servisadi

🔹 10. Örnek: Okul İçin Profesyonel Servis Yapısı

Sana uygun bir örnek:
Akıllı tahtaları 17:00’de kapatan servis + timer

/etc/systemd/system/tahta-kapat.service
/etc/systemd/system/tahta-kapat.timer

Ek geliştirme:

  • Haftasonu çalışmasın

  • Log dosyasına gün yazsın

  • Geri sayım uyarısı çıkaran script eklenebilir

İstersen tüm dosyaları hazır kullanıma uygun olarak oluşturabilirim.


🔹 11. Servis Override (Üzerine Yazma)

Mevcut bir servisin ayarını değiştirmek için:

sudo systemctl edit servisadi

Açılan dosya:

[Service]
Environment="JAVA_OPTS=-Xms256m -Xmx1024m"

Kaydet → otomatik override.conf oluşur.


🔹 12. /lib/systemd/system/ ile Farkı

KlasörAçıklama
/lib/systemd/systemPaket ile gelen servis dosyaları
/etc/systemd/systemKullanıcının oluşturduğu/özelleştirdiği servisler

/etc içindeki dosyalar her zaman daha öncelikli çalışır.


📌 Sonuç: /etc/systemd/ → Tam Yönetim Merkezi

Bu dizin:

  • Servis oluşturma

  • Açılışta çalışma ayarı

  • Zamanlama (timer)

  • Mount yönetimi

  • Override

  • Target yapısı

gibi systemd’nin tüm gücünü kullanmamızı sağlar.

Yorumlar

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Başlangıç Onarma