SERVİS YÖNETİMİ (SYSTEMD) VE SERVİS DURUM KONTROLÜ
Modern Linux sistemlerinde (CentOS/RHEL 7+) servislerin, süreçlerin ve önyükleme (boot) hedeflerinin merkezi yönetimi. `systemctl` komutu ile temel servis yaşam döngüsünün kontrolü.
Giriş: Eski `sysvinit` sisteminin aksine, modern RHEL/CentOS sistemleri **systemd** adında bir init sistemi kullanır. systemd, daha hızlı önyükleme, paralel servis başlatma ve kaynakların daha verimli yönetilmesi gibi avantajlar sunar. Tüm servisler, `systemctl` komutu üzerinden yönetilir.
Bölüm 1: Temel Systemctl Komutları
**systemctl**, systemd'nin ana yönetim aracıdır ve servisler (unit'ler) üzerinde dört temel aksiyonu gerçekleştirir: başlatma, durdurma, yeniden başlatma ve durum kontrolü.
Servis Yaşam Döngüsü Komutları (Örn: httpd servisi)
- **Servisi Başlatma:** Bir servisi hemen başlatır (Ancak sistem yeniden başlatıldığında otomatik başlamaz).
sudo systemctl start httpd
- **Servisi Durdurma:** Çalışan bir servisi durdurur.
sudo systemctl stop httpd
- **Servisi Yeniden Başlatma (Restart):** Servisi durdurur ve tekrar başlatır. Yapılandırma dosyalarında büyük değişiklikler yapıldığında kullanılır.
sudo systemctl restart httpd
- **Servisi Yeniden Yükleme (Reload):** Servisi kesintiye uğratmadan (durdurup başlatmadan), sadece konfigürasyon dosyalarını okumasını sağlar (Tüm servisler bu özelliği desteklemez).
sudo systemctl reload httpd
Bölüm 2: Servis Durumu ve Kalıcı Ayarlar
Bir servisin sistem önyüklemesinde (boot) otomatik olarak başlayıp başlamayacağını `enable` ve `disable` komutları ile kontrol ederiz.
Durum Kontrolü ve Kalıcı Ayarlar
- **Servis Durumunu Kontrol Etme:** Bir servisin aktif olup olmadığını, son hatalarını ve ana işlem numarasını (PID) detaylıca gösterir. Sorun giderme için en çok kullanılan komuttur.
systemctl status httpd
- **Otomatik Başlatmayı Etkinleştirme (Enable):** Servisin sunucu her açıldığında otomatik olarak başlamasını sağlar (Kalıcı ayar).
sudo systemctl enable httpd
- **Otomatik Başlatmayı Devre Dışı Bırakma (Disable):** Servisin önyüklemede otomatik başlamasını engeller.
sudo systemctl disable httpd
- **Tüm Servisleri Listeleme:** Yüklenmiş ve aktif olan tüm servis dosyalarını listeler.
systemctl list-unit-files --type=service
**Kontrol Noktası:** Durum sütununda `enabled`, `disabled`, `static` veya `masked` gibi değerler görünür.
Bölüm 3: Önyükleme Hedefleri (Targets) ve Günlük Yönetimi
systemd'de eski runlevel'ların yerini **Target**'lar almıştır. Target'lar, bir dizi servisi gruplayan ve önyükleme durumunu belirleyen dosyalardır (Örn: `multi-user.target` komut satırı modudur).
Target Yönetimi ve Log Kayıtları
- **Varsayılan Target'ı Görüntüleme:** Sunucunun açılışta hangi moda (target) gireceğini gösterir. Kurumsal sunucular için bu genellikle `multi-user.target` olmalıdır.
systemctl get-default
- **Varsayılan Target'ı Değiştirme:** Sunucuyu GUI'den (graphical.target) komut satırı moduna (multi-user.target) geçirme (kalıcı ayar).
sudo systemctl set-default multi-user.target
- **Sistem Günlüklerini Görüntüleme (Journalctl):** systemd'nin günlük yönetim aracıdır. Servis hatalarını ve sistem olaylarını incelemek için kullanılır.
# Tüm logları görüntüler (en yenisi altta)
sudo journalctl
# Sadece httpd servisine ait son 100 satırı görüntüler
sudo journalctl -u httpd -n 100
Kritik Uyarı (Masking): Bir servisi **`mask`** komutuyla devre dışı bırakmak, servisin manuel olarak bile başlatılmasını tamamen engeller. Yüksek güvenlik gerektiren, asla çalışmaması gereken servisler için kullanılır.
sudo systemctl mask httpd
← ÖNCEKİ: DOSYA SİSTEMİ | SONRAKİ: FIREWALL & PORT →