Konuyu Açan #1
systemctl ile Servis Yönetimi

Kavramsal olarak systemd ve systemctl, modern Linux dağıtımlarında servisleri başlatma, durdurma, yeniden yükleme ve durumlarını izleme için kullanılan temel araçlardır. Bu yazı, systemctl komutunun günlük yönetim görevlerinde nasıl kullanıldığına dair pratik bir rehber sunar; ayrıca konfigürasyon dosyalarının yapısını ve güvenlik/pratik ipuçlarını ayrıntılı olarak inceler.


  • Temel kontrol akışı: Herhangi bir servisi yönetmek için önce hangi birimin çalıştığını bilmek gerekir. Örneğin bir httpd servisini yönetmek için:
    KOD
    1systemctl status httpd.service

    komutu ile durumunu kontrol edilir; başlatma, durdurma ve yeniden başlatma işlemleri şu komutlarla yapılır:
    KOD
    1234systemctl start httpd.service
    systemctl stop httpd.service
    systemctl restart httpd.service
    systemctl reload httpd.service  ; konfigürasyon değişiklikleri için yeniden yükler
  • Otomatik başlatmayı yönetme: Sistemin açılışı sırasında belirli servislerin otomatik olarak başlaması istenir. Aktif/etkinleştirme ve devre dışı bırakma komutları:
    KOD
    12systemctl enable httpd.service
    systemctl disable httpd.service

    Bunlar, systemd’nin başlangıç sürecine birim ekler ya da çıkarır. Devre dışı bırakılan bir servis, sonraki açılışlarda otomatik olarak başlamaz.
  • Servis konfigürasyonu ve yeniden yükleme: Birimi etkileyen değişiklikler genelde unit dosyasını veya modül konfigürasyonunu içerir. Değişiklik yapıldıktan sonra systemd’nin yeni yapılandırmayı okuyabilmesi için yeniden yükleme gerekir:
    KOD
    12systemctl daemon-reload
    systemctl restart .service

    Bu adımlar, unit dosyasında yapılan değişikliklerin aktif olması için gereklidir.
  • Güncel durum sorgulama ve loglar: Servislerin sağlık durumunu, çalışıp çalışmadığını ve son hataları hızlıca görmek için:
    KOD
    12systemctl is-active httpd.service
    journalctl -u httpd.service -n 100 --since "24 hours ago"

    İyileştirme amaçlı loglar, sistem olaylarını kronolojik olarak takip etmek için değerli bilgiler sunar.
  • Farklı birim türleriyle çalışma: systemd sadece servislerle sınırlı değildir; timer birimleriyle zamanlanmış görevler, mount birimleriyle dosya sistemleri, socket birimleriyle dinamik bağlantılar gibi pek çok yapı sağlar. Örneğin timer kullanımıyla belirli aralıklarla birim çalıştırılabilir:
    KOD
    1234systemctl enable myjob.timer
    systemctl start myjob.timer
    systemctl status myjob.timer
    systemctl list-timers --all

    Bu yaklaşım, cron’a alternatif olarak daemonize edilmiş, güvenilir ve izlenebilir bir planlama sağlar.
  • Güvenlik ve sınırlandırmalar: Özellikle ağ servislerinde, yalnızca gerekli kaynakları sunacak şekilde sınırlandırmalar uygulanır. Örneğin Privileged olmayan kullanıcılara erişim kısıtları, birim dosyasında kullanıcı ve grup ayarları ile belirlenir; ExecutablePath ve Capability ayarları güvenlik çerçevesinde önemlidir. Ayrıca log düzeyi ve hata yönetimi, sistemin durumu hakkında hızlı kararlar almak için kritik olabilir.


Kapsamlı bir sistem yöneticisi için, systemctl komutlarını sadece çalıştırmak için değil, servislerin yaşam döngüsünü tasarlarken de kullanmak gerekir: başlat, durdur, yeniden yükle, otomatik başlatma ve geri bildirim mekanizmaları arasındaki ilişkiyi anlamak, kararlı ve güvenilir bir altyapı kurmanın temelidir.


Bu yaklaşım üzerinden kendi servisinizi kurarken hangi birimi kullanmayı planlıyorsunuz? Belirli bir senaryo veya karşılaştığınız bir sorun var mı?

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 2, Üyeler: 2, Misafirler: 0)
Toplam: 2 (üyeler: 2, misafirler: 0)
0 alıntı seçildi