Estou postando a resposta aqui na esperança de que isso salvará outras pessoas das horas de frustração que tive que suportar. O problema mais fácil de lidar aqui é o usuário nobody
do qual falo acima. Isso acontece simplesmente porque o arquivo nginx.conf
criado por openresty - veja
/usr/local/openresty/nginx/conf/nginx.conf
não se incomoda em especificar um usuário. Basta editar a primeira linha
#user nobody
, por isso, lê user www-data www-data
e esse problema específico é classificado.
O segundo problema é o script init.d
. Receio que a documentação aberta tenha de assumir a culpa aqui. Eles se esforçam para explicar como se tornar openresty & amp; como compilá-lo. Algumas palavras sobre como daemonizá-lo não teriam sido erradas.
Depois de horas tateando no escuro eu pensei em procurar por openresty init.d . O primeiro resultado que surgiu foi este . Eu estou reproduzindo esse script abaixo
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Nginx Daemon"
NAME=nginx
PREFIX=/usr/local/openresty/nginx
DAEMON=$PREFIX/sbin/$NAME
CONF=$PREFIX/conf/$NAME.conf
PID=$PREFIX/logs/$NAME.pid
SCRIPT=/etc/init.d/$NAME
. /lib/lsb/init-functions
if [ ! -x "$DAEMON" ] || [ ! -f "$CONF" ]; then
echo -e "3[33m $DAEMON has no permission to run. 3[0m"
echo -e "3[33m Or $CONF doesn't exist. 3[0m"
sleep 1
exit 1
fi
do_start() {
if [ -f $PID ]; then
echo -e "3[33m $PID already exists. 3[0m"
echo -e "3[33m $DESC is already running or crashed. 3[0m"
echo -e "3[32m $DESC Reopening $CONF ... 3[0m"
$DAEMON -s reopen -c $CONF
sleep 1
echo -e "3[36m $DESC reopened. 3[0m"
else
echo -e "3[32m $DESC Starting $CONF ... 3[0m"
$DAEMON -c $CONF
sleep 1
echo -e "3[36m $DESC started. 3[0m"
fi
}
do_stop() {
if [ ! -f $PID ]; then
echo -e "3[33m $PID doesn't exist. 3[0m"
echo -e "3[33m $DESC isn't running. 3[0m"
else
echo -e "3[32m $DESC Stopping $CONF ... 3[0m"
$DAEMON -s stop -c $CONF
sleep 1
echo -e "3[36m $DESC stopped. 3[0m"
fi
}
do_reload() {
if [ ! -f $PID ]; then
echo -e "3[33m $PID doesn't exist. 3[0m"
echo -e "3[33m $DESC isn't running. 3[0m"
echo -e "3[32m $DESC Starting $CONF ... 3[0m"
$DAEMON -c $CONF
sleep 1
echo -e "3[36m $DESC started. 3[0m"
else
echo -e "3[32m $DESC Reloading $CONF ... 3[0m"
$DAEMON -s reload -c $CONF
sleep 1
echo -e "3[36m $DESC reloaded. 3[0m"
fi
}
do_quit() {
if [ ! -f $PID ]; then
echo -e "3[33m $PID doesn't exist. 3[0m"
echo -e "3[33m $DESC isn't running. 3[0m"
else
echo -e "3[32m $DESC Quitting $CONF ... 3[0m"
$DAEMON -s quit -c $CONF
sleep 1
echo -e "3[36m $DESC quitted. 3[0m"
fi
}
do_test() {
echo -e "3[32m $DESC Testing $CONF ... 3[0m"
$DAEMON -t -c $CONF
}
do_info() {
$DAEMON -V
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
reload)
do_reload
;;
restart)
do_stop
do_start
;;
status)
status_of_proc -p $PID "$DAEMON" "$NAME" && exit 0 || exit $?
;;
quit)
do_quit
;;
test)
do_test
;;
info)
do_info
;;
*)
echo "Usage: $SCRIPT {start|stop|reload|restart|quit|test|info}"
exit 2
;;
esac
exit 0
Uma omissão no script original que eu corrigi - não havia o método status
.