加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

学习php-fpm服务启动脚本的技巧

发布时间:2022-07-21 13:44:00 所属栏目:PHP教程 来源:互联网
导读:这个我自己在用,没问题,有三个path需要自己酌情修改。 先创建自启动文件:/etc/init.d/php-fpm 内容如下: ### BEGIN INIT INFO # Provides: php-fpm # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4
    这个我自己在用,没问题,有三个path需要自己酌情修改。
 
    先创建自启动文件:/etc/init.d/php-fpm
 
    内容如下:
 
  
    ### BEGIN INIT INFO
 
    # Provides:     php-fpm
 
    # Required-Start:  $remote_fs $network
 
    # Required-Stop:   $remote_fs $network
 
    # Default-Start:   2 3 4 5
 
    # Default-Stop:   0 1 6
 
    # Short-Description: starts php-fpm
  
    exec_prefix=${prefix}
 
    php_fpm_BIN=${exec_prefix}/sbin/php-fpm
 
    php_fpm_CONF=${prefix}/etc/php-fpm.conf
 
    php_fpm_PID=${prefix}/var/run/php-fpm.pid
 
    php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
 
    wait_for_pid () {
 
      try=0
 
      while test $try -lt 35 ; do
 
        case "$1" in
 
          'created')
 
          if [ -f "$2" ] ; then
 
            try=''
 
            break
 
          fi
 
          ;;
 
          'removed')
 
          if [ ! -f "$2" ] ; then
  
        echo -n "Starting php-fpm "
 
        $php_fpm_BIN --daemonize $php_opts
 
        if [ "$?" != 0 ] ; then
 
          echo " failed"
 
          exit 1
 
        fi
 
        wait_for_pid created $php_fpm_PID
 
        if [ -n "$try" ] ; then
 
          echo " failed"
 
          exit 1
 
        else
 
          echo " done"
 
        fi
 
      ;;
 
      stop)
 
        echo -n "Gracefully shutting down php-fpm "
 
        if [ ! -r $php_fpm_PID ] ; then
 
          echo "warning, no pid file found - php-fpm is not running ?"
 
          exit 1
 
        fi
 
        kill -QUIT `cat $php_fpm_PID`
 
        wait_for_pid removed $php_fpm_PID
 
        if [ -n "$try" ] ; then
 
          echo " failed. Use force-quit"
 
          exit 1
 
        else
 
          echo " done"
 
        fi
 
      ;;
 
      status)
 
        if [ ! -r $php_fpm_PID ] ; then
 
          echo "php-fpm is stopped"
 
          exit 0
 
        fi
 
        PID=`cat $php_fpm_PID`
 
        if ps -p $PID | grep -q $PID; then
 
          echo "php-fpm (pid $PID) is running..."
 
        else
 
          echo "php-fpm dead but pid file exists"
 
        fi
 
      ;;
 
      force-quit)
 
        echo -n "Terminating php-fpm "
 
        if [ ! -r $php_fpm_PID ] ; then
 
          echo "warning, no pid file found - php-fpm is not running ?"
 
          exit 1
 
        fi
 
        kill -TERM `cat $php_fpm_PID`
 
        wait_for_pid removed $php_fpm_PID
 
        if [ -n "$try" ] ; then
 
          echo " failed"
 
          exit 1
 
        else
 
          echo " done"
 
        fi
 
      ;;
 
      restart)
 
        $0 stop
 
        $0 start
 
      ;;
 
      reload)
 
        echo -n "Reload service php-fpm "
 
        if [ ! -r $php_fpm_PID ] ; then
 
          echo "warning, no pid file found - php-fpm is not running ?"
 
          exit 1
 
        fi
 
        kill -USR2 `cat $php_fpm_PID`
 
        echo " done"
 
      ;;
 
      *)
 
        echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"
 
        exit 1
 
      ;;
 
    esac
 
    配置php-fpm服务
  
 
    # 设置权限
 
    chmod 755 /etc/init.d/php-fpm
 
    # php-fpm加入服务
 
    chkconfig --add php-fpm
 
    # php-fpm 234级别下设置为启动
 
    chkconfig php-fpm on
 
    # 查看php-fpm服务当前配置
 
    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 restart
 
    # 重载
 
    service php-fpm reload
 
    #检查配置文件
 
    service php-fpm configtest
 
    脚本说明
  
 
    # Source function library.
 
    . /etc/rc.d/init.d/functions
 
    # Source networking configuration.
 
    . /etc/sysconfig/network
 
    以上量行代码有人会疑问他们到底是做什么的,'.'是source类似于程序中的include和require,将functions里面的方法全部倒入到这边,这边程序便可以使用,例如这边用到的daemon、status。第二行的network实际上就几行,如下
 
 
 
    NETWORKING=yes
 
    HOSTNAME=E10162
 
    将他们作为变量赋值,判断网卡是否启动,如果你的nginx不走网卡,其实网络这段可以去掉.

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读