Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108831
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 244
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-02 11:07
个人简介

联系方式:825988516@qq.com 业精于勤荒于嬉 行成于思毁于随

文章分类
文章存档

2014年(12)

我的朋友

分类: LINUX

2014-12-03 17:11:37

最近由于项目需求,需要开发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.  演示效果


阅读(3091) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~