diff options
Diffstat (limited to 'app-eselect/eselect-php/files/php-fpm.init')
-rwxr-xr-x | app-eselect/eselect-php/files/php-fpm.init | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/app-eselect/eselect-php/files/php-fpm.init b/app-eselect/eselect-php/files/php-fpm.init new file mode 100755 index 000000000000..a186d83478c5 --- /dev/null +++ b/app-eselect/eselect-php/files/php-fpm.init @@ -0,0 +1,47 @@ +#!/sbin/runscript + +set_phpvars() { + PHPSLOT=${SVCNAME#php-fpm-} + [ ${PHPSLOT} = 'php-fpm' ] && PHPSLOT="$(eselect php show fpm)" + + PHP_FPM_CONF="/etc/php/fpm-${PHPSLOT}/php-fpm.conf" + PHP_FPM_PID="/var/run/php-fpm-${PHPSLOT}.pid" +} + +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 $? +} |