Startup script (init.d) for nginx
abril 15, 2009 Deixe um comentário
Instalei o Nginx no Suse há algum tempo e fiz isso manualmente, não sei se havia um pacote pronto, ou eu queria instalar a última versão, só sei que instalei na munheca.
Recentemente percebi (do pior jeito) que não tinha um script de inicialização instalado, a máquina foi rebootada e o Nginx não subiu.
Procurei me entender com o funcionamento dos scripts de inicialização, procurei um script pronto para o Nginx e não achei.
Então peguei um script qualquer, seguindo o modelo de parâmetros “start/stop”, adaptei para a minha necessidade e saí com o seguinte:
#! /bin/sh
# Description: Startup script for nginx.
#
# Author: Enrico B. da Luz
DESC="nginx"
NGINX=/usr/sbin/nginx
PIDFILE=/usr/logs/nginx.pid
CONF=/usr/conf/nginx.conf
d_start() {
$NGINX -c $CONF || echo -en "\n$DESC already running"
}
d_stop() {
kill -QUIT `cat $PIDFILE` || echo -en "\n$DESC not running"
}
d_restart() {
d_stop
sleep 2
d_start
}
d_reload() {
kill -HUP `cat $PIDFILE` || echo -en "\nCan't reload $DESC"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_restart
echo "."
;;
*)
echo "Usage: $0 {start|stop|restart|reload}" >&2
exit 3
;;
esac
exit 0
Como fiz para o Suse, segui os funcionamento dos scripts de inicialização”>padrões de caminhos e coloquei o script no “/etc/rc.d/boot.local”.
Deve funcionar para outras distribuições também, mas aconselho que se utilize um bom gerenciador de pacotes para evitar dores-de-cabeça.