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

Cevap