• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Nginx和PHP-FPM的启动、重启、停止脚本分享

    服务器上的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

    您可能感兴趣的文章:
    • 监控php-fpm并自动重启服务的shell脚本
    • Centos7重启apache、nginx、mysql、php-fpm命令方法
    • PHP脚本监控Nginx 502错误并自动重启php-fpm
    • php-fpm重启导致的程序执行中断问题详解
    上一篇:Shell脚本统计当前目录下目录和文件的数量
    下一篇:shell脚本监控系统负载、CPU和内存使用情况
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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