免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2240 | 回复: 5
打印 上一主题 下一主题

分享一份nginx启动脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-11 17:25 |只看该作者 |倒序浏览
#!/bin/bash

#Use:Startup script for the nginx HTTP Server

#Create Date:2009/06/10

#Last Update:2009/06/11


#Update URL: http://blog.1983y.com.cn/2009/06/nginx_script/


#Sciprt by e4twood

#Test on CentOS 5.2/RHEL 5


#Definition nginx directory & service name

NGINX_DIR="/usr/local/webserver/nginx"
PROG="nginx"

#Definition check listen conflict function

check_listen(){
    echo -n "Checek $PROG Listen port status: "
    NGINX_LISTEN=(`grep "listen" ${NGINX_DIR}/conf/$PROG.conf | awk '{print $NF}' | cut -d";" -f1 | uniq`)
    SYSTEM_LISTEN=(`netstat -tnl |awk '{print $4}' | grep [0-9] | awk -F":" '{print $NF}' | uniq `)
        for FIR in ${NGINX_LISTEN[*]}; do
            for  SEC in ${SYSTEM_LISTEN[*]};do
                if [ $FIR == $SEC ]; then
                    echo "Has the listen port conflict, please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
                    exit 2
                fi
            done
        done
    echo "listen prot status OK!"   
                        
}

#definition check uid function

check_uid(){
    if [ `id -u ` != "0" ];then
        echo "Error,The Script must be root to run"
        exit 1
    fi
    }
#Definition start function

start() {
    check_uid
    ${NGINX_DIR}/sbin/$PROG -t >/dev/null 2>&1
        if [ $? == "0" ]; then
            if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
                echo -n $"Starting $PROG: "   
                echo "$PROG is already running"
                exit 1
            else
                check_listen
                ${NGINX_DIR}/sbin/$PROG  
                echo -n $"Starting $PROG: "        
                echo "$PROG START OK"
            fi
        else
            echo "$PROG syntax error,please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
            exit 2
        fi   
        }               

#Definition stop function

stop() {
    check_uid
    echo -n $"Stopping $PROG: "
    if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
        pkill $PROG
        echo "$PROG stop OK"
    else
        echo "$PROG process does not exist.so $PROG stop failed"
    fi
    }

#Definition reload function

reload() {
    check_uid
    echo -n $"Reloading $PROG: "
        ${NGINX_DIR}/sbin/$PROG -t >/dev/null 2>&1
        if [ $? == "0" ]; then
            if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
                kill -HUP `cat ${NGINX_DIR}/logs/$PROG.pid`
                echo "$PROG reload OK"
                exit 0
            else
                echo "$PROG process does not exist.so $PROG reload failed"
                exit 1
            fi
        else
            echo "$PROG syntax error,please check $PROG config file ${NGINX_DIR}/conf/$PROG.conf"
            exit 2
        fi
}

#Definition status function

status() {
    if [ `ps aux | grep $PROG | grep -c "master"` == "1" ]; then
        echo "$PROG status is running"
    else
        echo "$PROG status is stop"
    fi   
    }

# See how we were called.

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  reload)
    reload
    ;;
  configtest)
    check_uid
    ${NGINX_DIR}/sbin/$PROG -t
    ;;
   status)
    status
    ;;   
   listentest)
    check_uid
    check_listen
    ;;
   *)
       echo $"Usage: $0{start|stop|restart|reload|configtest|status|listentest}"
        exit 1
esac

#exit status code

exit $(echo $?)



[ 本帖最后由 e4twood 于 2009-6-11 21:01 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-06-11 17:54 |只看该作者
支持分享。学习一下。:)

论坛徽章:
0
3 [报告]
发表于 2009-06-11 17:56 |只看该作者
先收藏

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
4 [报告]
发表于 2009-06-11 20:01 |只看该作者
感谢,收藏先,改天细细研究。

论坛徽章:
0
5 [报告]
发表于 2009-06-11 20:08 |只看该作者
做个记号,找个时间好好学习一下

论坛徽章:
0
6 [报告]
发表于 2009-06-12 11:14 |只看该作者
不错  收藏
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP