xref: /php-src/sapi/fpm/init.d.php-fpm.in (revision 9fcc1bca)
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