Nginx启动_停止_重启_状态查询脚本

3210阅读 0评论2014-12-03 cqw_cu_
分类:LINUX

最近由于项目需求,需要开发CDN的分发及存储功能,打算以Nginx的架构为基础进行开发。Nginx的配置、源码,结合《深入理解Nginx-模块开发与架构解析》一书研究过一段时间,近期又发现了淘宝以Nginx为基础的开源项目Tengine,新增了一些功能,需要修改到Nginx的配置脚本,加之自己脚本写的比较少,所以把Nginxconfigure脚本及auto目录下的脚本梳理了一遍,为了检查自己对脚本的基本掌握情况,这里分享一个简单的Nginx的启动、停止、重启、状态检查脚本

 

我在梳理Nginx脚本时发觉这块的网络资料基本是一片空白,或许都是脚本高手,大家默认都能看得懂,且随意修改。如果看到这篇文章的读者,希望有一份关于Nginx配置脚本的详细文档,请留言,只要有一人留言,我就把Nginx配置脚本整理为规范、易读的文档共享到网上,献丑了,莫见笑。

 

1.  脚本内容

脚本命名为process.sh,脚本内容如下:

#!/bin/sh

 

nginx_install_path=/usr/local/nginx/sbin/

nginx_install_name=nginx

 

function usage()

{

    echo "Usage: `basename $0` (start|stop|restart|status)"

}

 

function ngx_status_echo()

{

    status=$1

    echo -e "Nginx status:          [\033[1;32m $status \033[0m]"

}

 

function ngx_start_echo()

{

    result=$1

    echo -e "Starting nginx:            [\033[1;32m $result \033[0m]"  

}

 

function ngx_stop_echo()

{

    result=$1

    echo -e "Stopping nginx:            [\033[1;32m $result \033[0m]"

}

 

function ngx_start()

{

    if $nginx_install_path$nginx_install_name > /dev/null 2>&1 ; then

        ngx_start_echo OK

    else

        ngx_start_echo FAILED

        exit 1

    fi

}

 

function ngx_stop()

{

    if /usr/bin/killall -s QUIT $nginx_install_name > /dev/null 2>&1 ; then

        ngx_stop_echo OK

        else

        ngx_stop_echo FAILED

                exit 1

        fi  

}

 

function ngx_status()

{

    if ps -C $nginx_install_name > /dev/null 2>&1 ; then

        ngx_status_echo RUNNING

        else

        ngx_status_echo STOPPED

        fi

}

 

function ngx_param_check()

{

    if [ "$1" -ne "1" ] ; then

        usage

        exit 1

    fi

}

 

ngx_param_check $#

 

case "$1" in

    start)

        if ps -C $nginx_install_name > /dev/null 2>&1 ; then

            ngx_status_echo RUNNING

        else

            ngx_start

        fi

        ;;

    stop)

        if ps -C $nginx_install_name > /dev/null 2>&1 ; then

            ngx_stop

        else

            ngx_status_echo STOPPED

        fi

        ;;

    restart)

        $0 stop

        $0 start

        ;;

    status)

        ngx_status

        ;;

    *)

        usage

        ;;

esac

2.  命令制作

执行如下命令:

ln -s /home/chenqianwu/shell/process.sh /usr/bin/nginxst

3.  演示效果


上一篇:UNIX环境高级编程之进程的用户ID和组ID
下一篇:C++中cout简单实现