X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=php-fpm.init;h=125922be2c5d652452f96586ecfdf1c2a0657243;hb=d758c359ead1ebd7c7272f39e7d7cdb3ef0ecae0;hp=bb952ffa2ee00f0df8cb7ad5c240d00067c89c23;hpb=ae1427a4589dc424e53ef78d1da106ca1ea68956;p=packages%2Fphp.git diff --git a/php-fpm.init b/php-fpm.init index bb952ff..125922b 100644 --- a/php-fpm.init +++ b/php-fpm.init @@ -6,11 +6,10 @@ # # description: PHP FastCGI Process Manager # -# processname: php.fpm -# config: /etc/php/fpm.conf -# pidfile: /var/run/php/fpm.pid +# processname: php-fpm +# config: /etc/php/php-fpm.conf +# pidfile: /var/run/@processname@.pid # -# $Id$ # Source function library . /etc/rc.d/init.d/functions @@ -18,130 +17,61 @@ # Get network config . /etc/sysconfig/network -php_fpm_BIN=/usr/bin/php-cgi -php_fpm_CONF=/etc/php/fpm.conf -php_fpm_PID=/var/run/php/fpm.pid - -php_opts="--fpm-config $php_fpm_CONF" - -wait_for_pid() { - local 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 -} +configfile=/etc/php/php-fpm.conf +lockfile=/var/lock/subsys/@processname@ +pidfile=$(sed -ne 's,^pid\s*=\s*\(.*\),\1,p' $configfile) +pidfile=${pidfile:-/var/run/@processname@.pid} start() { - echo -n "Starting php_fpm " - - $php_fpm_BIN --fpm $php_opts - - if [ "$?" != 0 ] ; then - echo " failed" - exit 1 + # Check if the service is already running? + if [ -f $lockfile ]; then + msg_already_running "PHP FastCGI Process Manager" + return fi - wait_for_pid created $php_fpm_PID - - if [ -n "$try" ] ; then - echo " failed" - exit 1 - else - echo " done" - fi + msg_starting "PHP FastCGI Process Manager (@processname@)" + daemon --pidfile $pidfile /usr/sbin/@processname@ --fpm-config $configfile + RETVAL=$? + [ $RETVAL -eq 0 ] && touch $lockfile } 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 + if [ ! -f $lockfile ]; then + msg_not_running "PHP FastCGI Process Manager" + return 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 + # Stop daemons. + msg_stopping "PHP FastCGI Process Manager" + # always gracefully shut down php-fpm + /sbin/start-stop-daemon -q --stop -s QUIT --retry QUIT/600/TERM/10 --pidfile $pidfile + [ "$?" -eq 0 ] && ok || fail + rm -f $lockfile } 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 + local sig=${1:-HUP} + local retnr=${2:-7} + if [ ! -f $lockfile ]; then + msg_not_running "PHP FastCGI Process Manager" + RETVAL=$retnr + return fi - kill -USR2 `cat $php_fpm_PID` - echo " done" + msg_reloading "PHP FastCGI Process Manager" + killproc --pidfile $pidfile php-fpm -$sig + RETVAL=$? } condrestart() { - if [ -f /var/lock/subsys/php-fpm ]; then - stop - start - else - msg_not_running php-fpm + if [ ! -f $lockfile ]; then + msg_not_running "PHP FastCGI Process Manager" RETVAL=$1 - fi -} - -flush-logs() { - 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 + return fi - kill -USR1 `cat $php_fpm_PID` - - echo " done" + stop + start } RETVAL=0 @@ -150,7 +80,7 @@ case "$1" in start) start ;; - stop) + stop|quit) stop ;; restart) @@ -161,16 +91,13 @@ case "$1" in condrestart 0 ;; reload|force-reload) - reload - ;; - quit) # graceful shutdown - quit + reload USR2 7 ;; flush-logs|logrotate) - flush-logs + reload USR1 0 ;; status) - status php-fpm php.fpm + status --pidfile $pidfile @processname@ RETVAL=$? ;; *)