preload preload


Linux PHP-FPM init.d Script

Last time, I have provided information on Apache Httpd Startup Script. This time its turn for PHP-FPM.

Below is the init script for PHP-FPM.


#! /bin/sh
# chkconfig: 2345 90 10
# description: PHP fast process manager

php_fpm_BIN=/usr/local/bin/php-cgi
php_fpm_CONF=/usr/local/etc/php-fpm.conf
php_fpm_PID=/usr/local/logs/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

 echo -n .
 try=`expr $try + 1`
 sleep 1

 done

}

case "$1" in
 start)
 echo -n "Starting php_fpm "

 $php_fpm_BIN --fpm $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

Save the file as php-fpm in /etc/init.d folder and then run the linux chkconfig command to add it in startup.


chkconfig --add php-fpm

Enjoy

Liked the content? Then why not share with your pals

  • One response to "Linux PHP-FPM init.d Script"

  • t
    17:29 on July 2nd, 2012

    did you actually check your script? it is not working without fixing some stuff.

  • Leave a Reply

    * Required
    ** Your Email is never shared