nginx启停脚本

模拟系统启停脚本

[root@ssh02 scripts]# cat case-nginx.sh 
#!/bin/bash
#Author: Qjp.com
#QQ: 1532810249
#Date: 2019-11-02
#FileName: case-nginx.sh
#URL: https://www.qinjianpeng.top
#Description: 
source /etc/init.d/functions

nginx_pid=/var/run/nginx.pid

case $1 in
    start)
        #判断启动UID文件是否存在.
        if [ -f $nginx_pid ];then
            #判断文件是否为空
            if [ -s $nginx_pid ];then
                action "nginx 已经启动" /bin/false
            else 
            #为空则删除
                rm -f $nginx_pid
                systemctl start nginx &>/dev/null
                if [ $? -eq 0 ];then
                    action "nginx 启动成功" /bin/true
                else
                    action "nginx 启动失败" /bin/false
                fi

            fi
        else
            systemctl start nginx &>/dev/null
            if [ $? -eq 0 ];then
                action "nginx 启动成功" /bin/true
            else
                action "nginx 启动失败" /bin/false
            fi
        fi
        ;;
    stop)
        if [ -f $nginx_pid ];then
            systemctl stop nginx && \
            rm -f $nginx_pid
            action "Nginx is stop" /bin/true
        else 
            action "[error] open() "$nginx_pid" failed (2: No such file or directory)" /bin/false
        fi 
        ;;
    status)
        if [ -f $nginx_pid ];then
            echo "ngixn (pid $(cat $nginx_pid)) is running....."
        else
            echo "nginx is stopped"
        fi
        ;;
    reload)
        #1.nginx启动了没有,启动直接报错
        #2.nginx启动了,需要reload,但是先要检查语法
            #如果nginx语法没有问题,则reload
            #如果有问题提示用户是否进入对应的错误行数修改否则退出
        if [ -f $nginx_pid ];then
            nginx -t -c /etc/nginx/nginx.conf &>nginx.err
            rc=$?
            if [ $rc -eq 0 ];then
                systemctl reload nginx &>/dev/null
            else
                ngx_conf=$(cat nginx.err |awk -F "[ :]" 'NR==1 {print $(NF-1)}')
                ngx_line=$(cat nginx.err |awk -F "[ :]" 'NR==1 {print $NF}')
                read -p "是否进入${ngx_conf}错误配置文件的${ngx_line}进行修改" tt
                case $tt in
                    y)
                        vim $ngx_conf +${ngx_line}
                        ;;
                    n)
                        exit 1
                        ;;
                esac

            fi
        else
            echo "Nginx 没有启动"
        fi

        ;;
    *)
        echo  "USAGE: $0 {start|stop|status|reload}"
        exit 1
esac

你可能感兴趣的:(nginx启停脚本)