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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容