Skip to content

Instantly share code, notes, and snippets.

@bordoni
Created July 5, 2012 20:12
Show Gist options
  • Save bordoni/3056168 to your computer and use it in GitHub Desktop.
Save bordoni/3056168 to your computer and use it in GitHub Desktop.
init.d/php-fpm
#! /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=/server/php
exec_prefix=$prefix
php_fpm_BIN=$prefix/sbin/php-fpm
php_fpm_CONF=$prefix/etc/php-fpm.conf
php_fpm_PID=/server/php/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
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
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo "Starting php-fpm: $php_fpm_BIN $php_opts"
$php_fpm_BIN $php_opts
if [ "$?" != 0 ] ; then
echo "Couldn't start php-fpm"
exit 1
fi
wait_for_pid created $php_fpm_PID
if [ -n "$try" ] ; then
echo "Couldn't start php-fpm"
exit 1
else
echo "Started php-fpm successfully"
fi
;;
stop)
echo "Trying to stop php-fpm gracefully"
if [ ! -r $php_fpm_PID ] ; then
echo "There is no php-fpm running"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if [ -n "$try" ] ; then
echo "Couldn't stop php-fpm gracefully, try using force-quit"
exit 1
else
echo "Stopped php-fpm gracefully"
fi
;;
force-quit)
echo "Terminating php-fpm "
if [ ! -r $php_fpm_PID ] ; then
echo "There is no php-fpm 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 "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}"
exit 1
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment