Tôi giả sử bạn đã cài đặt nginx
Nếu bạn có nginx đang chạy thì dừng quá trình sử dụng:
sudo kill
mèo /usr/local/nginx/logs/nginx.pid
Kịch bản ban đầu
Kịch bản hiển thị bên dưới là từ bản cài đặt Ubuntu 10.04 và đã được điều chỉnh để tính đến cài đặt nginx tùy chỉnh của chúng tôi. Vui lòng tạo tập lệnh:
sudo nano /etc/init.d/nginx
Trong tập tin trống đặt như sau:
#! /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=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/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 /usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/usr/local/nginx/logs/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Thực thi
Vì tệp init là tập lệnh shell, nó cần phải có quyền thực thi.
Chúng tôi đặt chúng như vậy:
sudo chmod +x /etc/init.d/nginx
update-rc
Bây giờ chúng ta đã chuẩn bị kịch bản cơ sở, chúng ta cần thêm nó vào các mức chạy mặc định:
sudo /usr/sbin/update-rc.d -f nginx defaults
Đầu ra sẽ tương tự như sau:
sudo /usr/sbin/update-rc.d -f nginx defaults
Adding system startup for /etc/init.d/nginx ...
/etc/rc0.d/K20nginx -> ../init.d/nginx
/etc/rc1.d/K20nginx -> ../init.d/nginx
/etc/rc6.d/K20nginx -> ../init.d/nginx
/etc/rc2.d/S20nginx -> ../init.d/nginx
/etc/rc3.d/S20nginx -> ../init.d/nginx
/etc/rc4.d/S20nginx -> ../init.d/nginx
/etc/rc5.d/S20nginx -> ../init.d/nginx
Bây giờ chúng tôi có thể bắt đầu, dừng và khởi động lại nginx giống như với bất kỳ dịch vụ nào khác:
sudo /etc/init.d/nginx start
...
sudo /etc/init.d/nginx stop
...
sudo /etc/init.d/nginx restart
Kịch bản cũng sẽ được gọi khi khởi động lại để nginx sẽ tự động bắt đầu.