Systemd, Linux’ta kullanılan güçlü bir sistem ve servis yöneticisidir. Günümüzde birçok büyük Linux dağıtımında varsayılan başlatma sistemi olarak kabul görmüş ve sistemin açılışıyla hangi programların çalışacağını kontrol etmede standart bir yöntem sunmuştur. Bu yazıda, size 10 saniyede bir basit bir shell script çalıştıran özel bir systemd servisini nasıl oluşturacağımı adım adım anlatacağım. Bu sayede, servislerinizi daha verimli bir şekilde yönetebileceksiniz.
Gereksinimler
Başlamadan önce şunlara ihtiyacımız var:
- Systemd yüklü bir Linux sistemi (çoğu modern dağıtım zaten systemd kullanıyor).
- Servis dosyalarını oluşturup yönetmek için root ya da sudo yetkileri.
Adım Adım Systemd Servis Oluşturma Kılavuzu
Kullandığımız Dağıtım:
- İşletim sistemi: CentOS 7
1. Shell Script Oluşturun
İlk olarak, bir servis olarak çalıştırmak istediğimiz bir script’e ihtiyacımız var. Bu örnekte, her 10 saniyede bir “Merhaba, Dünyalı!” ifadesini bir log dosyasına yazan basit bir bash script oluşturacağız
Yeni bir script dosyası oluşturun:
sudo vi /usr/local/bin/merhaba_dunyali.sh
Script’e şu içeriği ekleyin:
#!/bin/bash
echo "Merhaba, Dünyalı! $(date)" >> /var/log/merhaba_dunyali.log
Script’i çalıştırılabilir hale getirin:
sudo chmod +x /usr/local/bin/merhaba_dunyali.sh
2. Systemd Servis Dosyasını Oluşturun
Şimdi, systemd’ye script’in nasıl başlatılacağını söyleyen bir servis dosyası oluşturacağız.
Yeni bir servis dosyası oluşturun:
sudo vi /etc/systemd/system/merhaba_dunyali.service
Dosyaya şu içeriği ekleyin:
[Unit]
Description=Merhaba Dünyalı Servisi
[Service]
ExecStart=/usr/local/bin/merhaba_dunyali.sh
3. Systemd Zamanlayıcı Dosyası Oluşturun
Script’in her 10 saniyede bir çalıştırılması için bir zamanlayıcı dosyası oluşturacağız.
Yeni bir zamanlayıcı dosyası oluşturun:
sudo vi /etc/systemd/system/merhaba_dunyali.timer
Dosyaya şu içeriği ekleyin:
[Unit]
Description=Merhaba Dünyalı scriptini her 10 saniyede bir çalıştır
[Timer]
OnBootSec=10sec
OnUnitActiveSec=10sec
Unit=merhaba_dunyali.service
[Install]
WantedBy=timers.target
4. Zamanlayıcıyı Aktif Hale Getirin ve Başlatın
Zamanlayıcıyı sistem açıldığında otomatik olarak başlatmak ve hemen çalıştırmak için şu komutları kullanın:
Zamanlayıcıyı etkinleştirin:
sudo systemctl enable merhaba_dunyali.timer
Zamanlayıcıyı başlatın:
sudo systemctl start merhaba_dunyali.timer
5. Servisi Doğrulayın
Systemd zamanlayıcılarının listesini kontrol edelim:
sudo systemctl list-timers
Zamanlayıcının düzgün çalıştığını kontrol edelim:
sudo systemctl status merhaba_dunyali.timer
Ayrıca, script’in her 10 saniyede bir çalışıp çalışmadığını görmek için log dosyasını kontrol edebilirsiniz:
tail -f /var/log/merhaba_dunyali.log
Sonuç
Kendi özel systemd servislerimizi ve zamanlayıcılarımızı oluşturarak Linux sistemimizde görevleri otomatikleştirebilir ve servislerimizi daha kolay yönetebiliriz. Bu adımları izleyerek, düzenli aralıklarla çalışan bir shell script ya da başka bir script için servis kurabiliriz. Systemd’nin sunduğu güçlü özellikler sayesinde, sistemimizin stabilitesini artırarak yönetimi kolaylaştırabiliriz.