Моя нормальная ОС - 64-разрядная Windows 7, но я запускаю VirtualBox с выпуском latests Ubuntu. Я пытаюсь использовать VM как мой веб-сервер, так как разработка Rails-приложения в ящике Windows в лучшем случае затруднительна.
Я установил nginx, и я могу запускать / останавливать службу просто отлично через терминал.
Я установил nginx. Однако я добавил скрипт запуска nginx (ниже) в каталог init.d и добавил его к запуску через sudo update-rc.d nginx defaults, но он просто не запускается при запуске. Вообще. Файл nginx является исполняемым, а владелец - root (тот же, что и моя служба mysql, которая работает ...)
#! /bin/sh
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO
PATH=/etc/nginx/sbin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/etc/nginx/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi
set -e
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /etc/nginx/logs/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /etc/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/etc/nginx/logs/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/etc/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /etc/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
FYI, я знаю, что нормальный каталог установки для nginx есть / opt / nginx / sbin но в моей системе это фактически / etc / nginx / sbin. Так что это не так.
Запуск sudo pgrep nginx сразу после загрузки на рабочий стол не дает никаких результатов, но я могу запустить службу с помощью sudo /etc/init.d/nginx start, и все работает отлично. При последующих вызовах sudo pgrep nginx я получаю PID из процессов nginx.
Почему это не работает?
Я нашел эту проблему в бродяжнике, используя виртуальную коробку, следующие исправления моей проблемы:
echo "sudo /etc/init.d/nginx start" | sudo tee -a /etc/rc.local