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)

  1. **Servisi Başlatma:** Bir servisi hemen başlatır (Ancak sistem yeniden başlatıldığında otomatik başlamaz).
    sudo systemctl start httpd
  2. **Servisi Durdurma:** Çalışan bir servisi durdurur.
    sudo systemctl stop httpd
  3. **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
  4. **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

  1. **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
  2. **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
  3. **Otomatik Başlatmayı Devre Dışı Bırakma (Disable):** Servisin önyüklemede otomatik başlamasını engeller.
    sudo systemctl disable httpd
  4. **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ı

  1. **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
  2. **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
  3. **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 →