Systemd servis yönetimi yöntemleri

Furko

Astsubay Başçavuş
Admin
Katılım
24 Kasım 2025
Mesajlar
982
Reaksiyon puanı
56
Systemd, modern Linux dağıtımlarında en yaygın kullanılan init sistemi ve servis yöneticisi olarak karşımıza çıkıyor. Bu sistem, başlangıçta sistemin nasıl başlatılacağını yönetirken, aynı zamanda uygulama ve servislerin durumunu da takip ediyor. Peki, bir servisi systemd ile nasıl yönetebiliriz? Öncelikle, her sistemde genellikle `/etc/systemd/system/` dizininde yer alan servis dosyaları (unit files) ile başlıyoruz. Bu dosyalar `.service` uzantısına sahip ve servisin nasıl çalışacağını tanımlar. Bir servis dosyası oluşturmak için, basit bir metin düzenleyici kullanarak, örneğin `nano` ile yeni bir dosya açabiliriz: `sudo nano /etc/systemd/system/ornek.service`.

Servis dosyamızda birkaç önemli alan bulunuyor. `Unit` bölümü, servisin adını ve açıklamasını içerir. Ardından `Service` bölümü, çalıştırılacak komutu ve diğer önemli seçenekleri tanımlar. Mesela, `ExecStart` direktifi ile servisin başlatılacağı komutu yazıyoruz. Eğer bu servisi otomatik olarak başlatmak istiyorsak, `WantedBy=multi-user.target` satırını eklemeliyiz. Bu noktada, dikkat edilmesi gereken bir diğer husus, `Type` alanıdır. `simple`, `forking`, `oneshot`, `notify` gibi seçeneklerle servisin davranışını belirleyebiliriz. Her biri, servisin nasıl başlatılacağını ve sonlandırılacağını farklı şekillerde yönetir.

Servis dosyamızı kaydettikten sonra, değişikliklerin geçerli olması için systemd'yi yeniden yüklememiz gerekiyor. Bunu kolayca yapabiliriz, sadece `sudo systemctl daemon-reload` komutunu çalıştırmalıyız. Ardından, servisimiz üzerinde işlemler yapabiliriz. Örneğin, servisi başlatmak için `sudo systemctl start ornek.service` komutunu kullanmalıyız. Servisin durumunu kontrol etmek için ise `sudo systemctl status ornek.service` komutunu girmemiz yeterli. Bu komut, servisin çalışıp çalışmadığını ve varsa hata mesajlarını bize gösterecektir.

Eğer servisi sistem başlangıcında otomatik olarak başlatmak istiyorsak, `sudo systemctl enable ornek.service` komutunu kullanabiliriz. Bu şekilde, her reboot sonrası sistemimiz otomatik olarak bu servisi başlatacaktır. Servisi durdurmak veya duruma göre yeniden başlatmak da oldukça basit. Sadece `sudo systemctl stop ornek.service` ile durdurabilir, `sudo systemctl restart ornek.service` ile yeniden başlatabiliriz. Her iki işlem de, özellikle güncellemeler sonrası servisin yeni konfigürasyonlarıyla yeniden başlaması açısından oldukça faydalı.

Kapsamlı bir servis yönetimi için loglama da önemli bir konu. Systemd, servislerin loglarını `journalctl` aracı ile yönetir. Örneğin, `journalctl -u ornek.service` komutunu kullanarak, belirli bir servisin loglarına erişebiliriz. Burada yaşanan problemleri tespit etmek veya servisin çalışma sürecini izlemek oldukça kolay hale geliyor. Hatta logları sürekli takip etmek için `journalctl -f -u ornek.service` komutunu kullanarak gerçek zamanlı olarak logları izleyebiliriz. Bu, sorunları anlık olarak görmek ve müdahale etmek açısından faydalı bir yöntem.

Systemd ile servis yönetimi, sistem yöneticileri için kritik bir beceridir. Bu konuda pratik yapmak, farklı senaryolar denemek ve dosyaların nasıl çalıştığını anlamak, ileride karşılaşabileceğimiz problemleri çözme yeteneğimizi geliştirecektir. Unutmayın, her yeni servis eklemesiyle birlikte sistemin çalışma mantığını daha iyi anlayacak ve yönetim becerilerinizi geliştireceksiniz...
 
Geri
Üst Alt