Skip to content

Instantly share code, notes, and snippets.

@phcostabh
Forked from kain-jy/gist:4138784
Last active December 17, 2015 19:09
Show Gist options
  • Save phcostabh/5657946 to your computer and use it in GitHub Desktop.
Save phcostabh/5657946 to your computer and use it in GitHub Desktop.
PHP-FPM as service with PHPBrew
#! /bin/sh
#
# run as current user
#
# before, you should edit php-fpm.conf
# and comment out [www] user and group.
PHP_BASE=$HOME/.phpbrew/php/$PHPBREW_PHP
PHP_FPM_BIN=$PHP_BASE/sbin/php-fpm
PHP_FPM_CONF=$PHP_BASE/etc/php-fpm.conf
PHP_FPM_PID=$PHP_BASE/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 $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 "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 -TERM `cat $PHP_FPM_PID`
wait_for_pid removed $PHP_FPM_PID
if [ -n "$try" ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
quit)
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"
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"
;;
logrotate)
echo -n "Re-opening php-fpm log file "
if [ ! -r $PHP_FPM_PID ] ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR1 `cat $PHP_FPM_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|quit|restart|reload|logrotate}"
exit 1
;;
esac
@c9s
Copy link

c9s commented Nov 19, 2013

Hi Philippe!

We just added "php-fpm" management support to phpbrew, you may check the readme file to see more details. :)

Regards,
Pedro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment