1#! /bin/sh 2 3### BEGIN INIT INFO 4# Provides: php-fpm 5# Required-Start: $remote_fs $network 6# Required-Stop: $remote_fs $network 7# Default-Start: 2 3 4 5 8# Default-Stop: 0 1 6 9# Short-Description: starts php-fpm 10# Description: starts the PHP FastCGI Process Manager daemon 11### END INIT INFO 12 13prefix=@prefix@ 14exec_prefix=@exec_prefix@ 15 16php_fpm_BIN=@sbindir@/php-fpm 17php_fpm_CONF=@sysconfdir@/php-fpm.conf 18php_fpm_PID=@localstatedir@/run/php-fpm.pid 19 20php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID" 21 22wait_for_pid () { 23 try=0 24 25 while test $try -lt 35 ; do 26 27 case "$1" in 28 'created') 29 if [ -f "$2" ] ; then 30 try='' 31 break 32 fi 33 ;; 34 35 'removed') 36 if [ ! -f "$2" ] ; then 37 try='' 38 break 39 fi 40 ;; 41 esac 42 43 echo -n . 44 try=`expr $try + 1` 45 sleep 1 46 47 done 48 49} 50 51case "$1" in 52 start) 53 echo -n "Starting php-fpm " 54 55 $php_fpm_BIN --daemonize $php_opts 56 57 if [ "$?" != 0 ] ; then 58 echo " failed" 59 exit 1 60 fi 61 62 wait_for_pid created $php_fpm_PID 63 64 if [ -n "$try" ] ; then 65 echo " failed" 66 exit 1 67 else 68 echo " done" 69 fi 70 ;; 71 72 stop) 73 echo -n "Gracefully shutting down php-fpm " 74 75 if [ ! -r $php_fpm_PID ] ; then 76 echo "warning, no pid file found - php-fpm is not running ?" 77 exit 1 78 fi 79 80 kill -QUIT `cat $php_fpm_PID` 81 82 wait_for_pid removed $php_fpm_PID 83 84 if [ -n "$try" ] ; then 85 echo " failed. Use force-quit" 86 exit 1 87 else 88 echo " done" 89 fi 90 ;; 91 92 status) 93 if [ ! -r $php_fpm_PID ] ; then 94 echo "php-fpm is stopped" 95 exit 0 96 fi 97 98 PID=`cat $php_fpm_PID` 99 if ps -p $PID | grep -q $PID; then 100 echo "php-fpm (pid $PID) is running..." 101 else 102 echo "php-fpm dead but pid file exists" 103 fi 104 ;; 105 106 force-quit) 107 echo -n "Terminating php-fpm " 108 109 if [ ! -r $php_fpm_PID ] ; then 110 echo "warning, no pid file found - php-fpm is not running ?" 111 exit 1 112 fi 113 114 kill -TERM `cat $php_fpm_PID` 115 116 wait_for_pid removed $php_fpm_PID 117 118 if [ -n "$try" ] ; then 119 echo " failed" 120 exit 1 121 else 122 echo " done" 123 fi 124 ;; 125 126 restart) 127 $0 stop 128 $0 start 129 ;; 130 131 reload) 132 133 echo -n "Reload service php-fpm " 134 135 if [ ! -r $php_fpm_PID ] ; then 136 echo "warning, no pid file found - php-fpm is not running ?" 137 exit 1 138 fi 139 140 kill -USR2 `cat $php_fpm_PID` 141 142 echo " done" 143 ;; 144 145 configtest) 146 $php_fpm_BIN -t 147 ;; 148 149 *) 150 echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}" 151 exit 1 152 ;; 153 154esac 155