Daemons com shell script
Neste artigo mostrarei como criar daemons em shell script no Linux.
Parte 3: Script de inicialização
O daemon criado pode ser executado pelo usuário root ou ser executado pelo init na inicialização. Podemos criar um script de start/stop/restart/status para controlar o daemon.
Vamos criar o script de inicialização: /etc/init.d/daemon
Obs.: Este arquivo deve ser criado como root.
Nosso daemon tem que estar na pasta /usr/local/bin ou em qualquer pasta que seja interpretada pela variável PATH.
O script de inicialização está criado, agora basta colocarmos nos runlevels:
# update-rc.d daemon defaults
Para remover da inicialização:
# update-rc.d -f daemon remove
Pronto! Basta escolher qual será a função do daemon e pronto.
Vamos criar o script de inicialização: /etc/init.d/daemon
Obs.: Este arquivo deve ser criado como root.
#!/bin/bash
# /etc/init.d/daemon
typeset -x PID=$(pgrep daemon.sh)
do_start() {
if [ -f /tmp/daemon.lock ]
then
/usr/local/bin/daemon.sh &
sleep 0.3
else
/usr/local/bin/daemon.sh &
sleep 0.3
echo "Iniciando o daemon.sh: Processo: $PID"
fi
}
do_stop() {
kill -15 $PID 2>/dev/null &
echo "Parando o daemon.sh"
}
do_restart() {
if [ -f /tmp/daemon.lock ]
then
kill -15 $PID 2>/dev/null &
echo "Reiniciando o daemon.sh: Processo: $PID"
sleep 1
/usr/local/bin/daemon.sh &
else
do_start
fi
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_restart
;;
status)
if [ -f /tmp/daemon.lock ]
then
echo "o daemon.sh está rodando com sucesso"
else
echo "o daemon.sh está parado"
fi
;;
*)
echo "*Modo de uso: /etc/init.d/daemon (start|stop|restart|status)"
;;
esac
Nosso daemon tem que estar na pasta /usr/local/bin ou em qualquer pasta que seja interpretada pela variável PATH.
O script de inicialização está criado, agora basta colocarmos nos runlevels:
# update-rc.d daemon defaults
Para remover da inicialização:
# update-rc.d -f daemon remove
Pronto! Basta escolher qual será a função do daemon e pronto.
Um abraço.