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