#! /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/php exec_prefix=${prefix}
php_fpm_BIN=${exec_prefix}/sbin/php-fpm php_fpm_CONF=${prefix}/etc/php-fpm.conf php_fpm_PID=${prefix}/
var
/run/php-fpm.pid
php_opts=
"--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 ;;
status)
if
[ ! -r
$php_fpm_PID
] ; then
echo
"php-fpm is stopped"
exit
0 fi
PID=`cat
$php_fpm_PID
`
if
ps -p
$PID
| grep -q
$PID
; then
echo
"php-fpm (pid $PID) is running..."
else
echo
"php-fpm dead but pid file exists"
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"
;;
configtest)
$php_fpm_BIN
-t ;;
*)
echo
"Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}"
exit
1 ;;
esac