树莓派debian增加nginx自启动脚本

发布时间:2016-06-23 14:32 | 日记本:《知识分享》

在上一个文章中我们用源码安装了nginx,但是它没有追寻init启动脚本

现在我们创建一个脚本来完成启动,停止,重启,还有更重要的开机启动

前提

如果你通过其它方法将nginx执行路径改在其它地方,如 /usr/local/sbin/,那么你需要修正下面的脚本

停止

如果你的nginx正在运行,你可以通过如下命令停止

kill `cat /usr/local/nginx/logs/nginx.pid`

Init脚本

vi /etc/init.d/nginx

#! /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

当然你也可以通过附件下载脚本

执行

此脚本为shell命令,所以要先有可执行权限

chmod +x /etc/init.d/nginx

update-rc

脚本准备好后,我们把它加到默认运行级别

/usr/sbin/update-rc.d -f nginx defaults

开始,停止,重启

/etc/init.d/nginx start

/etc/init.d/nginx stop

/etc/init.d/nginx restart

脚本在系统启动时会自动执行start操作