summaryrefslogtreecommitdiff
blob: 6cc26acc3c36ccbe062795c4a5488131692a5d69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/sbin/runscript

set_phpvars() {
	PHPSLOT=${SVCNAME#php-fpm-}
	PHP_FPM_PID="/run/php-fpm-${PHPSLOT}.pid"
	if [ ${PHPSLOT} = 'php-fpm' ] ; then
		PHPSLOT="$(eselect php show fpm)"
		PHP_FPM_PID="/run/php-fpm.pid"
	fi

	PHP_FPM_CONF="/etc/php/fpm-${PHPSLOT}/php-fpm.conf"
}

extra_commands="depend"
extra_started_commands="reload"

depend() {
	need net
	use apache2 lighttpd nginx
}

start() {
        ebegin "Starting PHP FastCGI Process Manager"
	set_phpvars
        start-stop-daemon --start --pidfile ${PHP_FPM_PID} --exec \
            /usr/lib/${PHPSLOT}/bin/php-fpm -- -y "${PHP_FPM_CONF}" -g "${PHP_FPM_PID}"
        local i=0
        local timeout=5
        while [ ! -f ${PHP_FPM_PID} ] && [ $i -le $timeout ]; do
            sleep 1
            i=$(($i + 1))
        done
        
        [ $timeout -gt $i ]
        eend $?
}

stop() {
        ebegin "Stopping PHP FastCGI Process Manager"
	set_phpvars
        start-stop-daemon --signal QUIT --stop --exec /usr/lib/${PHPSLOT}/bin/php-fpm --pidfile ${PHP_FPM_PID}
        eend $?
}

reload() {
    ebegin "Reloading PHP FastCGI Process Manager"
    set_phpvars
    [ -f ${PHP_FPM_PID} ] && kill -USR2 $(cat ${PHP_FPM_PID})
    eend $?
}