当前位置 博文首页 > centos/rhel下实现nginx自启动脚本实例

    centos/rhel下实现nginx自启动脚本实例

    作者:admin 时间:2021-02-20 15:02

    通常在centos、rhel的OS下,我们大多是通过chkconfig来管理服务,比如开机自动启动服务之类。
    这里给大家介绍一个很好用的nginx启动脚本。以及简单的使用,如下:

    1. 执行如下命令:

    vim /etc/init.d/nginxd
    
    

    2.输入如下内容:

    注意:该文件中的如下几个变量,都需要根据你实际的目录来改写。

    nginx="/usr/local/nginx/sbin/nginx"  ##nginx的可执行文件路径
    lockfile="/var/nginx/nginx.lock"   ##需要先创建/var/nginx目录
    NGINX_CONF_FILE="/etc/nginx/nginx.conf" ##需要先创建该配置文件
    #!/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 
    # 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) 
    sysconfig="/etc/sysconfig/$prog" 
    lockfile="/var/nginx/nginx.lock" 
    pidfile="/var/nginx/${prog}.pid" 
    NGINX_CONF_FILE="/etc/nginx/nginx.conf" 
    [ -f $sysconfig ] && . $sysconfig 
    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 -p $pidfile $prog 
      retval=$? 
      echo 
      [ $retval -eq 0 ] && rm -f $lockfile 
      return $retval 
    } 
    restart() { 
      configtest_q || return 6 
      stop 
      start 
    } 
    reload() { 
      configtest_q || return 6 
      echo -n $"Reloading $prog: " 
      killproc -p $pidfile $prog -HUP 
      echo 
    } 
    configtest() { 
      $nginx -t -c $NGINX_CONF_FILE 
    } 
    configtest_q() { 
      $nginx -t -q -c $NGINX_CONF_FILE 
    } 
    rh_status() { 
      status $prog 
    } 
    rh_status_q() { 
      rh_status >/dev/null 2>&1 
    } 
    # Upgrade the binary with no downtime. 
    upgrade() { 
      local oldbin_pidfile="${pidfile}.oldbin" 
      configtest_q || return 6 
      echo -n $"Upgrading $prog: " 
      killproc -p $pidfile $prog -USR2 
      retval=$? 
      sleep 1 
      if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]]; then 
        killproc -p $oldbin_pidfile $prog -QUIT 
        success $"$prog online upgrade" 
        echo  
        return 0 
      else 
        failure $"$prog online upgrade" 
        echo 
        return 1 
      fi 
    } 
    # Tell nginx to reopen logs 
    reopen_logs() { 
      configtest_q || return 6 
      echo -n $"Reopening $prog logs: " 
      killproc -p $pidfile $prog -USR1 
      retval=$? 
      echo 
      return $retval 
    } 
    case "$1" in 
      start) 
        rh_status_q && exit 0 
        $1 
        ;; 
      stop) 
        rh_status_q || exit 0 
        $1 
        ;; 
      restart|configtest|reopen_logs) 
        $1 
        ;; 
      force-reload|upgrade)  
        rh_status_q || exit 7 
        upgrade 
        ;; 
      reload) 
        rh_status_q || exit 7 
        $1 
        ;; 
      status|status_q) 
        rh_$1 
        ;; 
      condrestart|try-restart) 
        rh_status_q || exit 7 
        restart 
        ;; 
      *) 
        echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}" 
        exit 2 
    esac 
    
    

    保存完毕之后,可以执行以下命令来启动nginx

    chmod 777 /etc/init.d/nginxd 
    /etc/init.d/nginxd start
    
    

    3. 配置开机启动

    执行以下命令:

    chkconfig nginxd on
    
    

    可以以下命令查看是否成功

    chkconfig --list | grep nginxd
    
    
    js
    下一篇:没有了