#! /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/php7 | |
exec_prefix=/usr/local/php7 | |
php_fpm_BIN=/usr/local/php7/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 " | |
mkdir -p /var/run/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" | |
;; | |
configtest) | |
$php_fpm_BIN -t | |
;; | |
*) | |
echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}" | |
exit 1 | |
;; | |
esac |