systemd nedir?
systemd, modern Linux dağıtımlarında sistem açılışını ve hizmetleri yöneten init sistemi ve hizmet yöneticisidir. Sunucuda çalışan servisleri başlatır, durdurur, yeniden başlatır ve bağımlılık sırasına göre yönetir. Günlükleri toplayan journald da bu yapının parçasıdır.
Hosting sunucularında Apache, nginx, MySQL ve SSH gibi tüm hizmetler çoğunlukla systemd birimleri (unit) olarak çalışır. Bu nedenle sunucu yönetiminin günlük işlerinde systemd bilgisi gerekir.
Nasıl çalışır?
systemd, birim dosyalarıyla tanımlanan servisleri, zamanlayıcıları ve bağlama noktalarını yönetir. Servislerin hangi sırayla ve hangi koşulda başlayacağı birim dosyasında belirtilir.
systemctl status,start,stop,restartveenabletemel komutlardır.journalctl -u hizmetile bir hizmetin günlüklerine bakılır.- Zamanlayıcı birimleri cron’a alternatif sunar.
Sunucu ve hosting ortamında
Bir hizmet çökerse systemd onu otomatik yeniden başlatacak şekilde yapılandırılabilir (Restart=on-failure). Böylece web sunucusu ya da veritabanı beklenmedik kapanmalardan sonra kendiliğinden ayağa kalkar. Hizmetlerin açılışta başlamasını systemctl enable belirler.
systemd ayrıca servisleri kısıtlamak için güvenlik seçenekleri sunar. systemd-analyze security komutu bir servisin yalıtım düzeyini puanlayarak iyileştirme önerileri sunar.
Nasıl uygulanır?
- Kritik hizmetler için
Restart=ayarını tanımlayın ve otomatik yeniden başlatmayı etkinleştirin. - Birim dosyalarını doğrudan değiştirmek yerine
systemctl editile üzerine yazma (override) dosyası oluşturun. - Servisleri sınırlamak için
NoNewPrivileges,ProtectSystemvePrivateTmpgibi yalıtım seçeneklerini değerlendirin. - Gereksiz hizmetleri
systemctl disableile kapatın; saldırı yüzeyi küçülür. - Günlük boyutunu
journaldayarlarıyla sınırlandırın ve gerekirse kalıcı depolamayı etkinleştirin. - Yapılandırma değişikliğinden sonra
systemctl daemon-reloadçalıştırın.
Sık yapılan hatalar
- Birim dosyasını düzenleyip
daemon-reloadyapmamak. enableilestartkomutlarını karıştırmak; biri açılışı, diğeri anlık durumu belirler.- Kullanılmayan servisleri açık bırakmak.
- Günlüklerin diski doldurmasına izin vermek.
Sık sorulan sorular
systemd ne işe yarar?
Linux sistemin açılışını ve servisleri yönetir; hizmetleri başlatır, durdurur ve çökerlerse yeniden başlatır. Günlük toplama gibi ek görevleri de üstlenir.
systemctl enable ile start arasındaki fark nedir?
start servisi o anda başlatır, enable ise sunucu yeniden başladığında otomatik açılmasını sağlar. İkisini birlikte kullanmak için systemctl enable --now yazılabilir.
Bir servisin günlüklerini nasıl görürüm?
journalctl -u servisadi komutu ilgili servisin günlüklerini listeler. -f ekleyerek canlı takip edebilirsiniz.
Bu terimin geçtiği rehberler
- Linux’ta disk doluluk sorunu giderme (df, du, inode, silinmiş-açık dosyalar)Linux’ta disk doluluk sorununu adım adım giderin: df ve du ile büyük dizinleri bulun, inode tükenmesini ve silinmiş ama açık dosyaları tespit edip güvenle alan açın.
- systemd servis birimi yazma ve sertleştirme seçenekleriKendi uygulamanız için systemd servis birimi yazın: Unit, Service ve Install bölümleri, otomatik yeniden başlatma, ortam dosyası ve sertleştirme seçenekleri.
- Proxmox VE küme (cluster) kurulumu: gereksinimler, pvecm, quorum ve dikkat edileceklerProxmox VE küme (cluster) kurulumunu pvecm ile adım adım yapın: ağ ve gereksinimler, düğüm ekleme, quorum mantığı, QDevice ve kümeye girerken dikkat edilecekler.
- logrotate yapılandırması: günlük döndürme, sıkıştırma ve saklamalogrotate ile günlük dosyalarını döndürme, sıkıştırma ve saklama süresini ayarlama; özel uygulama günlükleri için yapılandırma yazma, test etme ve sık hataları çözme rehberi.
İlgili terimler
- AppArmorProgramların erişebileceği dosya ve kaynakları profillerle sınırlayan Linux güvenlik modülü.
- auditdauditd, Linux denetim sisteminin kullanıcı alanı servisidir; dosya erişimi, sistem çağrısı ve yetki değişikliği gibi olayları kaydeder.
- Backport (geri taşıma)Yeni sürümdeki bir düzeltmenin eski sürüme uyarlanarak getirilmesi.
- Canlı yama (live patching)Çekirdek güncellemesini sunucuyu yeniden başlatmadan uygulama yöntemi.
- Çekirdek (kernel)İşletim sisteminin donanımı ve süreçleri yöneten merkezi parçası.
- cgroupscgroups, Linux çekirdeğinde süreç gruplarının işlemci, bellek ve G/Ç gibi kaynak kullanımını sınırlayan ve ölçen mekanizmadır.