• Nginx和PHP-FPM的启动、重启、停止脚本分享


    这篇文章主要介绍了Nginx和PHP-FPM的启动、重启、停止脚本分享,脚本中包含start、stop、reload、restart等常用的管理方法,并可以加入系统服务然后使用servicem命令管理,需要的朋友可以参考下
     

    服务器上的Nginx和PHP都是源码编译安装的,不像ubuntu一样有自带service启动脚本,所以不支持类似以前的nginx (start|restart|stop|reload)了。自己动手丰衣足食。以下脚本应该在RHEL, Fedora, CentOS下都适用。

    一、Nginx启动脚本/etc/init.d/nginx

    #!/bin/bash
    #
    # Startup script for 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"
     
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
     
    lockfile=/var/lock/subsys/nginx
     
    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
    esac
    

      编辑好后保存,执行以下命令

    sudo chmod +x /etc/init.d/nginx
    sudo /sbin/chkconfig nginx on
    # 检查一下
    sudo /sbin/chkconfig --list nginx
    nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

    完成!可以使用以下命令管理Nginx了

    service nginx start
    service nginx stop
    service nginx restart
    service nginx reload
     
    /etc/init.d/nginx start
    /etc/init.d/nginx stop
    /etc/init.d/nginx restart
    /etc/init.d/nginx reload
    

      二、PHP-FPM启动脚本/etc/init.d/php-fpm

    #!/bin/bash
    #
    # Startup script for the PHP-FPM server.
    #
    # chkconfig: 345 85 15
    # description: PHP is an HTML-embedded scripting language
    # processname: php-fpm
    # config: /usr/local/php/etc/php.ini
     
    # Source function library.
    . /etc/rc.d/init.d/functions
     
    PHP_PATH=/usr/local
    DESC="php-fpm daemon"
    NAME=php-fpm
    # php-fpm路径
    DAEMON=$PHP_PATH/php/sbin/$NAME
    # 配置文件路径
    CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf
    # PID文件路径(在php-fpm.conf设置)
    PIDFILE=$PHP_PATH/php/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
     
    # Gracefully exit if the package has been removed.
    test -x $DAEMON || exit 0
     
    rh_start() {
      $DAEMON -y $CONFIGFILE || echo -n " already running"
    }
     
    rh_stop() {
      kill -QUIT `cat $PIDFILE` || echo -n " not running"
    }
     
    rh_reload() {
      kill -HUP `cat $PIDFILE` || echo -n " can't reload"
    }
     
    case "$1" in
      start)
            echo -n "Starting $DESC: $NAME"
            rh_start
            echo "."
            ;;
      stop)
            echo -n "Stopping $DESC: $NAME"
            rh_stop
            echo "."
            ;;
      reload)
            echo -n "Reloading $DESC configuration..."
            rh_reload
            echo "reloaded."
      ;;
      restart)
            echo -n "Restarting $DESC: $NAME"
            rh_stop
            sleep 1
            rh_start
            echo "."
            ;;
      *)
             echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
             exit 3
            ;;
    esac
    exit 0
    

      编辑好后保存,执行以下命令

    sudo chmod +x /etc/init.d/php-fpm
    sudo /sbin/chkconfig php-fpm on
    # 检查一下
    sudo /sbin/chkconfig --list php-fpm
    php-fpm           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    

      完成!可以使用以下命令管理php-fpm了

    service php-fpm start
    service php-fpm stop
    service php-fpm restart
    service php-fpm reload
     
    /etc/init.d/php-fpm start
    /etc/init.d/php-fpm stop
    /etc/init.d/php-fpm restart
    /etc/init.d/php-fpm reload
    

      

  • 相关阅读:
    lntelliJ IDEA 皮肤设置
    Maven安装与配置
    lntelliJ IDEA 使用 Maven 与 每次新建项目都需要重新配置的解决方案
    Spring Boot 扫描机制说明
    Spring Boot Filter 使用指南
    Gradle构建CAS4.2.7爬坑指南
    Java的垃圾回收
    final与static
    angular directive自定义指令
    ui-router
  • 原文地址:https://www.cnblogs.com/marixh/p/6383310.html
Copyright © 2020-2023  润新知