Skip to content

Instantly share code, notes, and snippets.

@zeuxisoo
Last active October 25, 2018 17:19
Show Gist options
  • Save zeuxisoo/9951890 to your computer and use it in GitHub Desktop.
Save zeuxisoo/9951890 to your computer and use it in GitHub Desktop.
php-fpm.sh (start,stop,restart,reload,test,status)
#!/bin/sh
PREFIX=/usr/local/php
PHP_FPM_BIN=${PREFIX}/sbin/php-fpm
PHP_FPM_CONF=${PREFIX}/etc/php-fpm.user.conf
PHP_FPM_PID=${PREFIX}/pid/php-fpm.user.pid
PHP_OPTIONS="--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
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$PHP_FPM_BIN $PHP_OPTIONS
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-exit"
exit 1
else
echo " done"
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"
;;
*)
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