这个我自己在用,没问题,有三个path需要自己酌情修改。
内容如下:
PHP;">
#! /bin/sh
### 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
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
prefix=/usr/local/PHP
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
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting PHP-fpm "
$PHP_fpm_BIN --daemonize $PHP_opts
if [ "$?" != 0 ] ; then
echo " @R_301_159@"
exit 1
fi
wait_for_pid created $PHP_fpm_PID
if [ -n "$try" ] ; then
echo " @R_301_159@"
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 " @R_301_159@. 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 " @R_301_159@"
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服务
PHP;">
# 设置权限
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;">
# 启动
service PHP-fpm start
# 关闭
service PHP-fpm stop
# 重启
service PHP-fpm restart
# 重载
service PHP-fpm reload
#检查配置文件
service PHP-fpm configtest
脚本说明
PHP;">
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
以上量行代码有人会疑问他们到底是做什么的,'.'是source类似于程序中的include和require,将functions里面的方法全部倒入到这边,这边程序便可以使用,例如这边用到的daemon、status。第二行的network实际上就几行,如下
PHP;">
NETWORKING=yes
HOSTNAME=E10162
将他们作为变量赋值,判断网卡是否启动,如果你的Nginx不走网卡,其实网络这段可以去掉.
/etc/init.d/PHP-fpm
总结
以上所述是小编给大家介绍的PHP-fpm服务启动脚本的方法,希望对大家有所帮助。程序员遇到问题都会上(编程之家jb51.cc)查找问题解答方法!如果觉得站点还不错,随手转发给程序员朋友一下!