Home >Backend Development >PHP Tutorial >nginx startup script and chkconfig management under centos

nginx startup script and chkconfig management under centos

WBOY
WBOYOriginal
2016-08-08 09:19:331037browse
在安装完nginx后,重新启动需要“kill -HUP nginx进程编号”来进行重新加载,显然十分不方便。如果能像apache一样,直接通过脚本进行管理就方便多了。nginx官方早就想好了,也提供了这个脚本,地址:http://wiki.nginx.org/RedHatNginxInitScript。这里将管理脚本收录在这里:
#!/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:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
  
# Source function library.
. /etc/rc.d/init.d/functions
  
# Source networking configuration.
. /etc/sysconfig/network
  
# Check that networking is up.
[ "$NETWORKING"= "no"] && exit0
  
nginx="/usr/sbin/nginx"
prog=$(basename$nginx)
  
NGINX_C/etc/nginx/nginx.conf"
  
[ -f /etc/sysconfig/nginx] && . /etc/sysconfig/nginx
  
lockfile=/var/lock/subsys/nginx
  
make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep"configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   if[ -z "`grep $user /etc/passwd`"]; then
       useradd-M -s /bin/nologin$user
   fi
   opti -V 2>&1 | grep'configure arguments:'`
   foropt in$options; do
       if[ `echo$opt | grep'.*-temp-path'` ]; then
           value=`echo$opt | cut-d "="-f 2`
           if[ ! -d "$value"]; then
               # echo "creating" $value
               mkdir-p $value && chown-R $user $value
           fi
       fi
   done
}
  
start() {
    [ -x $nginx ] || exit5
    [ -f $NGINX_CONF_FILE ] || exit6
    make_dirs
    echo-n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq0 ] && touch$lockfile
    return$retval
}
  
stop() {
    echo-n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq0 ] && rm-f $lockfile
    return$retval
}
  
restart() {
    configtest || return$?
    stop
    sleep1
    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/null2>&1
}
  
case"$1" in
    start)
        rh_status_q && exit0
        $1
        ;;
    stop)
        rh_status_q || exit0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit0
            ;;
    *)
        echo$"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit2
esac

将以上脚本保存到/etc/init.d/nginx文件,并修改两个地方:
  • nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。
  • NGINX_C/etc/nginx/nginx.conf” 修改成配置文件的路径。
  • 保存后,就可以通过该脚本对nginx服务进行管理了:$ /etc/init.d/nginx start $ /etc/init.d/nginx stop $ /etc/init.d/nginx reload ...使用chkconfig进行管理上面的方法完成了用脚本管理nginx服务的功能,但是还是不太方便,比如要设置nginx开机启动等。这时可以使用chkconfig来设置。先将nginx服务加入chkconfig管理列表:chkconfig --add /etc/init.d/nginx加完这个之后,就可以使用service对nginx进行启动,重启等操作了。$ service nginx start $ service nginx stop $ service nginx reload ...设置终端模式开机启动:$ chkconfig --level 3 nginx on

    From: http://www.01happy.com/centos-nginx-shell-chkconfig/

    以上就介绍了centos下nginx启动脚本和chkconfig管理,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn