Nginx 开机启动脚本

在编译完成Nginx必不可少的就是将其加入开机自启项,下文为介绍如何将Nginx添加的开机自启,本次操作基于树莓派Debian10系统,nginx安装目录为

/usr/local/nginx/

首先用nano编辑器在/etc/init.d/目录下新建一个名为nginx文件

sudo nano /etc/init.d/nginx

接着复制以下脚本代码粘贴

#! /bin/sh
# chkconfig: 2345 55 25
# Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and
# run 'update-rc.d -f nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: 'chkconfig --add nginx'

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

# Author:   licess
# website:  http://lnmp.org

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME #改成自己的路径
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf #改成自己的路径
PIDFILE=/data/logs/nginx/$NAME.pid #改成自己的路径

case "$1" in

start)
    echo -n "Starting $NAME... "

    if netstat -tnpl | grep -q nginx;then
        echo "$NAME (pid `pidof $NAME`) already running."
        exit 1
    fi

    $NGINX_BIN -c $CONFIGFILE

    if [ "$?" != 0 ] ; then
        echo " failed"
        exit 1
    else
        echo " done"
    fi
    ;;

stop)
    echo -n "Stoping $NAME... "

    if ! netstat -tnpl | grep -q nginx; then
        echo "$NAME is not running."
        exit 1
    fi

    $NGINX_BIN -s stop

    if [ "$?" != 0 ] ; then
        echo " failed. Use force-quit"
        exit 1
    else
        echo " done"
    fi
    ;;

status)
    if netstat -tnpl | grep -q nginx; then
        PID=`pidof nginx`
        echo "$NAME (pid $PID) is running..."
    else
        echo "$NAME is stopped"
        exit 0
    fi
    ;;

force-quit)
    echo -n "Terminating $NAME... "

    if ! netstat -tnpl | grep -q nginx; then
        echo "$NAME is not running."
        exit 1
    fi

    kill `pidof $NAME`

    if [ "$?" != 0 ] ; then
        echo " failed"
        exit 1
    else
        echo " done"
    fi
    ;;

restart)
    $0 stop
    sleep 1
    $0 start
    ;;

reload)
    echo -n "Reload service $NAME... "

    if netstat -tnpl | grep -q nginx; then
        $NGINX_BIN -s reload
        echo " done"
    else
        echo "$NAME is not running, can't reload."
        exit 1
    fi
    ;;

configtest)
    echo -n "Test $NAME configure files... "

    $NGINX_BIN -t
    ;;

*)
    echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
    exit 1
    ;;

esac

接着设置权限

sudo chmode +x /etc/init.d/nginx

然后安装sysv-rc-conf

sudo apt-get install sysv-rc-conf

运行sysv-rc-conf, 按空格选择nginx运行级别为 2 3 4 5 S

sudo sysv-rc-conf
运行级别说明:
空格表示选择
S 表示开机后就会运行的服务
0 表示关机
1 表示单用户模式 (类似windows的安全模式)
2 表示无网络服务的多用户模式
3 表示多用户模式
4 系统预留(暂没使用)
5 表示多用户图形模式
6 表示重启
打X 表示开启该服务。

选完退出按【q】 就行了
上一篇
下一篇