php-fpm定义成集群资源时报错解决方法

解决PHP-FPM启动与停止问题的自定义脚本

这是我在实验中碰到的问题,我们在定义php-fpm为资源的时候,用php程序包自带的脚本会报错。

笔者花了很多时间尝试了各种办法,最后找到了一位网友写的脚本,可以解决。

脚本如下:

#!/bin/sh
#=======================================================================================
# php-fpm - this script start and stop the php-fpm daemon
#
# chkconfig 35 on
# description: php-fpm is a FastCGI web server.
# processname: php-fpm
# config: /usr/local/php/etc/php-fpm.conf
# pidfile: /var/run/php-fpm.pid
#=======================================================================================
PATH= /usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/bin
    
BINFILE= "/usr/local/php/sbin/php-fpm"
CFGFILE= "/usr/local/php/etc/php-fpm.conf"
PIDFILE= "/var/run/php-fpm.pid"
LOCKFILE= "/var/lock/php-fpm.lock"
    
RETVAL=0
    
start() {
     [[ -x $BINFILE ]] ||  exit  5
     [[ -f $CFGFILE ]] ||  exit  6
       
     if  [[ ` ps  aux |  grep  php-fpm: |  grep  - v  grep  wc  -l` -gt 0 ]];  then
         echo  "The php-fpm is already running."
         return  1
     fi
       
     $BINFILE -t > /dev/null  2>&1
       
     if  [[ $? - ne  0 ]];  then
         echo  "The php-fpm configure has error."
         return  1
     fi
       
     echo  -n  "Starting php-fpm......"
     $BINFILE -y $CFGFILE -g ${PIDFILE}
     RETVAL=$?
     echo
     [[ $RETVAL - eq  0 ]] &&  touch  $LOCKFILE
       
     return  $RETVAL
}
    
stop() {
     if  [[ ` ps  aux |  grep  php-fpm: |  grep  - v  grep  wc  -l` - eq  0 ]];  then
         echo  "The php-fpm is not running."
         return  1
     fi
       
     echo  -n  "Shutting down php-fpm......"
       
     if  [[ -f $PIDFILE ]];  then
         kill  -QUIT ` cat  ${PIDFILE}`
     else
         kill  -QUIT ` ps  aux |  grep  php-fpm |  awk  '/master/{print $2}' `
     fi
       
     RETVAL=$?
     echo
     [[ $RETVAL - eq  0 ]] &&  rm  -f $LOCKFILE $PIDFILE
       
     return  $RETVAL
}
    
restart() {
     stop
     sleep  1
       
     while  true
     do
         if  [[ ` ps  aux |  grep  php-fpm: |  grep  - v  grep  wc  -l` - eq  0 ]];  then
             start
             break
         fi
         sleep  1
     done
       
     RETVAL=$?
     echo
       
     return  $RETVAL
}
    
reload() {
     if  [[ ` ps  aux |  grep  php-fpm: |  grep  - v  grep  wc  -l` - eq  0 ]];  then
         echo  "The php-fpm is not running."
         return  1
     fi
       
     echo  -n $ "Reloading php-fpm......"
       
     if  [[ -f $PIDFILE ]];  then
         kill  -USR2 ` cat  ${PIDFILE}`
     else
         kill  -USR2 ` ps  aux |  grep  php-fpm |  awk  '/master/{print $2}' `
     fi
       
     RETVAL=$?
     echo
       
     return  $RETVAL
}
    
case  "$1"  in
start)
     start
     ;;
       
stop)
     stop
     ;;
       
restart)
     restart
     ;;
       
reload)
     reload
     ;;
       
*)
     echo  "Usage: service php-fpm {start|stop|restart|reload}"
     RETVAL=1
esac
    
exit  $RETVAL

此脚本出自 人生理想在于坚持不懈” 博客,请务必保留此出处http://sofar.blog.51cto.com/353572/1253208

将这个脚本替换掉php-fpm程序提供的脚本,然后在定义资源的时候不要使用资源监控(monitor)不然也会报错,笔者的定义方式如下:

crm configure primitive php-fpm lsb:php-fpm 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值