Linux’ta Systemd ile 10 Saniyede Bir Shell Script Çalıştırma

Systemd ile 10 Saniyede Bir Shell Script Çalıştırma

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir