教程集 www.jiaochengji.com
教程集 >  脚本编程  >  shell  >  正文 PHP-FPM启动脚本一例

PHP-FPM启动脚本一例

发布时间:2014-12-01   编辑:jiaochengji.com
分享一例php-fpm的启动脚本,用于平滑重启php,是学习bash shell实现服务自启动脚本的不错的例子,有需要的朋友参考下吧。

php-fpm启动脚本代码分享。
例子:
 

复制代码 代码示例:

#!/bin/sh
# php-fpm - this script start and stop the php-fpm daemon
# edit: www.jiaochengji.com
# 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

#php-fpm启动
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
}

#php-fpm停止
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
}

#php-fpm重启
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
}

#php-fpm重新加载配置文件
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

您可能感兴趣的文章:
检测linux负载过高时重启php的shell脚本
linux下php-fpm开启与关闭方法
PHP-FPM启动脚本一例
php提示Undefined variable: 引发的几个操作php-fpm等
php扩展安装不生效
php放到服务器上怎么启动?
php-fpm出现Undefined variable几个解决办法
shell脚本监控php-fpm并自动重启服务
linux php-fpm 如何重启
php中php-fpm重启、停止操作命令

关键词: linux shell  php-fpm  自动重启   
[关闭]
~ ~