nginx控制脚本

jxy123cs 2017-08-30 08:13:59

#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
        start)
$PROG
        ;;
        stop)
        kill -s QUIT $(cat $PIDF)
        ;;
        restart)
        $0 stop
        $0 start
        ;;
        reload)
        kill -s HUP $(cat $PIDF)
        ;;
        status)
        netstat -anpt|grep "80" &>/dev/null
        if [ $? -eq 0 ];then
                echo "nginx is running"
                netstat -anpt|grep "80"
        else
                echo "nginx is stoped"
                netstat -anpt|grep "80"
        fi
        ;;
        *)
        echo "Usage: $0 (start|stop|restart|reload)"
        exit 1
esac
exit 0




这个脚本报错:
[root@localhost nginx-1.0.8]# service nginx restart
/etc/init.d/nginx: line 7: syntax error near unexpected token `start'
/etc/init.d/nginx: line 7: `        start)'
请问是哪里有问题?
...全文
242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒桥 2017-09-14
  • 打赏
  • 举报
回复
我试了也没报错,先以为是格式问题
mxmkeep 2017-09-04
  • 打赏
  • 举报
回复
直接拿你的来跑,是可以的,没报语法错误 要不用下面试试
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/home/nginx/run/nginx.lock

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
内容简介: 本课程以通俗易懂的方式讲解Nginx技术,课程内容包括:1.Nginx简介、安装Nginx 2. 配置服务器 3.反向代理 4.负载均衡 5.动静分离为什么需要NginxNginx轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。nginx 处理静态文件好,静态处理性能比 apache 高三倍以上。nginx 的设计高度模块化,编写模块相对简单。nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃。nginx 作为负载均衡服务器,支持 7 层负载均衡。nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级。社区活跃,各种高性能模块出品迅速。课程大纲: 为了让大家快速系统了解Nginx知识全貌,我为你总结了「Nginx技术框架图」,帮你梳理学习重点,建议收藏!!

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧