Skip to content

Instantly share code, notes, and snippets.

@kain-jy
Created November 24, 2012 07:28
Show Gist options
  • Save kain-jy/4138784 to your computer and use it in GitHub Desktop.
Save kain-jy/4138784 to your computer and use it in GitHub Desktop.
[phpenv][php-build] php-fpm's init file
#! /bin/sh
#
# run as current user
# > mkdir ~/.phpenv/init
# > vim 5.3.19
#
# before, you should edit php-fpm.conf
# and comment out [www] user and group.
PHP_BASE=$HOME/.phpenv/versions/{version}
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment