Linux işletim sistemlerinde servislerin yönetimi büyük önem taşır. Systemd, modern Linux dağıtımlarında varsayılan olarak kullanılan bir sistem ve servis yöneticisidir. Servisleri başlatmak, durdurmak, otomatik çalıştırmak ve logları incelemek için güçlü araçlar sunar.
Bu yazıda, Systemd ile servis yönetimini, önemli komutları ve özel servis dosyaları oluşturmayı anlatmaya çalışacağım.
1. Systemd Nedir ve Neden Önemlidir?
Systemd, Linux’ta başlangıç sürecini (init system) yöneten bir sistem hizmetidir. Daha önce SysVinit ve Upstart gibi sistemler kullanılıyordu, ancak Systemd daha hızlı, daha güvenilir ve esnek olduğu için Linux dünyasında standart hale gelmiştir.
Systemd’nin Avantajları
✅ Paralel başlatma ile daha hızlı boot süresi sağlar.
✅ Servislerin bağımlılıklarını yönetebilir.
✅ Log yönetimi ve analiz için journalctl
sunar.
✅ Dinamik servis başlatma ve takip etme desteği bulunur.
2. Systemd ile Servis Yönetimi (systemctl Komutları)
Systemd servisleri yönetmek için kullanılan ana araç systemctl
komutudur. İşte temel systemctl komutları:
Servisleri Başlatma, Durdurma ve Yeniden Başlatma
İşlem | Komut |
---|---|
Servisi başlat | sudo systemctl start servis_adı |
Servisi durdur | sudo systemctl stop servis_adı |
Servisi yeniden başlat | sudo systemctl restart servis_adı |
Servisin durumunu kontrol et | systemctl status servis_adı |
Servisi yeniden yükle | sudo systemctl reload servis_adı |
Örnek Kullanım:
Bir web sunucusunun durumunu görmek için:
systemctl status apache2
Eğer Apache çalışmıyorsa başlatmak için:
sudo systemctl start apache2
3. Servislerin Otomatik Başlatılması
Bazı servislerin sistem açılışında otomatik olarak başlamasını isteyebilirsiniz. Bunun için:
🔹 Otomatik Başlatmayı Etkinleştirme:
sudo systemctl enable servis_adı
🔹 Otomatik Başlatmayı Devre Dışı Bırakma:
sudo systemctl disable servis_adı
🔹 Sistemde Yüklü Tüm Servisleri Listeleme:
systemctl list-units --type=service
4. Özel Servis Dosyası (.service
) Oluşturma
Linux üzerinde özel bir servis oluşturmak için Systemd servis dosyaları kullanılır.
Örnek: Basit Bir Servis Dosyası
Bir Python scriptini Systemd servisi olarak çalıştırmak için:
1️⃣ Servis Dosyası Oluşturma:
sudo nano /etc/systemd/system/ornekservis.service
2️⃣ Servis İçeriğini Ekleyin:
[Unit]
Description=Örnek Systemd Servisi
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/kullanici/script.py
Restart=always
User=kullanici
Group=kullanici
[Install]
WantedBy=multi-user.target
3️⃣ Servisi Aktif Hale Getirme:
sudo systemctl daemon-reload
sudo systemctl enable ornekservis
sudo systemctl start ornekservis
Bu adımlardan sonra Python scriptiniz sistem açıldığında otomatik olarak çalışacaktır! 🚀
5. Systemd Loglarını İnceleme (journalctl
)
Servislerin hata loglarını görmek için journalctl
komutu kullanılır.
🔍 Tüm Systemd Loglarını Görüntüleme:
journalctl -xe
🔍 Belirli Bir Servisin Loglarını Görme:
journalctl -u servis_adı --no-pager
Örneğin, Apache servisine ait son logları görmek için:
journalctl -u apache2 --no-pager
🔍 Gerçek Zamanlı Log İzleme:
journalctl -u servis_adı -f
Bu komut, ilgili servisin loglarını canlı olarak takip etmenizi sağlar.
6. Systemd ile Hata Kurtarma ve Debugging
Eğer bir servis düzgün çalışmıyorsa, şu adımları takip edebilirsiniz:
✅ Servisin durumunu kontrol edin:
systemctl status servis_adı
✅ Logları detaylı inceleyin:
journalctl -u servis_adı -xe
✅ Servisi yeniden yükleyin:
sudo systemctl restart servis_adı
✅ Daemon’u yenileyin:
sudo systemctl daemon-reexec
Systemd, Linux sistemlerinde servisleri başlatma, durdurma ve izleme için güçlü bir araçtır.
Yorum gönder