init.d script’i yazmak

Basit anlamda bir init.d script’i aşağıdaki şekilde olmalıdır. Bu örnekte script start, stop ve restart edilebilmektedir. Restart işlemi öncelikle stop sonra da start işleminin çalıştırılması şeklinde tanımlanmıştır. Start işleminde conf.config dosyasından satır satır aldığı parametreleri execute.php scriptine uygulamaktadır. Stop işleminde ise execute.php’yi process’ler içinde arayıp bununla ilgili tüm process’leri öldürmektedir. Script’i yazdıktan sonra chmod ile yöneticisini değiştirmeyi unutmayın.

#!/bin/bash
### BEGIN INIT INFO
# Provides:
#script_name
#Short-Description: Start/Stop script_name
###END INIT INFO
start(){     #script başlayınca yapılacak işlemler burada olacak
echo -n $”Starting $prog: ”
while read line;
do php -f /home/execute.php ip=$line;
done < conf.config
}

stop(){      #scriptdurdurulurken yapılacak işlemler burada olacak

        echo -n $”Stopping $prog: ”
ps aux | grep execute.php | awk ‘{print $2}’ | xargs kill -9
echo “[STOPPED]”;
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo “Run as $0 <start|stop|restart>”; exit 1;;
esac

#!/bin/bash
### BEGIN INIT INFO
# Provides:
#script_name
#Short-Description: Start/Stop script_name
###END INIT INFO
start(){
echo “Starting $prog: ”
while read line;
do
if ps aux | grep execute.php | grep $line ; then
echo $line ” Already running ” >>/var/log/execute.log
else
php -f /home/execute.php ip=$line >> /var/log/execute.log &
echo “Started : $line”;
fi
done < conf.config
}
stop(){
echo -n $”Stopping $prog: ”
ps aux | grep execute.php | awk ‘{print $2}’ | xargs kill -9
echo “execute service [STOPPED]”;
}
case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo “Run as $0 “; exit 1;;
esac

Bugün 1, bugüne kadar toplam 33 kez ziyaret edildi.

Bir yanıt yazın

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