16 Mayıs 2013 15:00 tarihinde Cagri Emer <ca...@cagriemer.net> yazdı:
> > Bu yazdiginiz uc daemon da upstart tarafindan yonetiliyor. /etc/init/ > altindan kontrol edebilirsiniz. postfix'in ise geleneksel init > tarafindan baslatildigina emin olmakla birlikte cron'unuzdaki geri kalan > sureclerin nasil kontrol edildigini bilmiyorum. Eger geri kalanlar > upstart tarafindan kontrol edilmiyorlarsa, log dosyasinda sadece upstart > tarafindan yonetilenleri gormek aslinda biraz supheli oluyor. Betikten > beklediginiz davranis bu mu bilemiyorum tabii. > Evet sadece bu üçü upstart tarafından yönetiliyor. > "service <daemon> status" komutunu upstart tarafindan yonetilen bir > surec icin calistirdiginizda aslinda "status <daemon>" calistirmis > oluyorsunuz. Eger betikten beklediginiz davranis bu ilettiginiz davranis > degilse "status <daemon>" bir nedenden oturu surekli 0'dan farkli bir > exit code donduruyor. Siz de bu yuzden her bes dakikada bir bu uc sureci > yeniden baslatiyorsunuz. > Elle yaptığım denemelerde exit code hep 0 dönüyor. cron içinden çalışınca 0'dan farklı değer dönüyor ve log atıyor. > Eger yapmak istediginiz bes dakikada bir kontrol yapip, calismayanlari > calistirmaksa pidof kullanabilirsiniz alternatif olarak. Onun da > sikintisi service ve pidof tarafindan farkli isimlendirmelerin > kullanilmasi olacaktir. Ornegin postfix icin pidof kullanacaksaniz > "pidof master" demeniz gerekiyor. Misal olmasi icin su kisa betigi > paylasayim. pidof -s tek bir PID dondurmesi icin, man sayfasindan > bakabilirsiniz zaten. Yeni bir ekleme yapacaginiz zaman services kismina > pidof tarafindan aranacak surec ismini, case altina ise service komutuna > verilecek ismi eklemeniz yeterli. Hem bu sekilde cron'unuzu ayni islerle > doldurmamis olursunuz. > > #!/bin/bash > > logFile=/var/log/scrt.log > services="mysqld apache2 dovecot master" > > startService() { > case $1 in > mysqld) > service mysql start > ;; > apache2) > service apache2 start > ;; > dovecot) > service dovecot start > ;; > master) > service postfix start > ;; > esac > } > > for serviceToBeChecked in $services; do > if [ ! $(pidof -s $serviceToBeChecked) ]; then > startService $serviceToBeChecked 1 > /dev/null > echo $(date) [$serviceToBeChecked] >> logFile > fi > done > Bu hali parametreleri scripte gömmek oluyor, tercih etmem doğrusu. -- *Görünenler*, *gerçek olsaydı bilime* gerek kalmazdı.
_______________________________________________ Linux-sunucu E-Posta Listesi Linux-sunucu@liste.linux.org.tr Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından okuyabilirsiniz; Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 dakika içinde üyeliğinizi sonlandırabilirsiniz. https://liste.linux.org.tr/mailman/listinfo/linux-sunucu