Skip to content
Snippets Groups Projects
etc-init-d-php53-fpm 2.08 KiB
Newer Older
  • Learn to ignore specific revisions
  • jurgenhaas's avatar
    jurgenhaas committed
    #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:          php-fpm
    # Required-Start:    $remote_fs $network
    # Required-Stop:     $remote_fs $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: starts php-fpm
    # Description:       starts the PHP FastCGI Process Manager daemon
    ### END INIT INFO
    
    prefix=/usr/local
    exec_prefix=${prefix}
    
    php_fpm_BIN=${exec_prefix}/sbin/php-fpm
    php_fpm_CONF=/etc/php5/fpm/php-fpm.conf
    php_fpm_INI=/etc/php5/fpm/php.ini
    php_fpm_PID=/var/run/php5-fpm.pid
    
    php_opts="-c $php_fpm_INI --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 --daemonize $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 "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-quit"
    			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