summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2015-11-24 15:11:36 -0500
committerMichael Orlitzky <mjo@gentoo.org>2015-11-24 15:12:00 -0500
commita0709457d61898989510adfa26c4cb615f18165b (patch)
tree7f132dc2e3c7d244d696bbb1e97d70cad8513ba7 /app-eselect/eselect-php
parentmedia-video/cheese: fix subslot (diff)
downloadgentoo-a0709457d61898989510adfa26c4cb615f18165b.tar.gz
gentoo-a0709457d61898989510adfa26c4cb615f18165b.tar.bz2
gentoo-a0709457d61898989510adfa26c4cb615f18165b.zip
app-eselect/eselect-php: new revision to test config before FPM start/reload.
Now that we have a configtest() command for the php-fpm daemon, we should run it before attempting to reload the daemon. This prevents the (working) daemon from crashing if the new config has a typo in it. Performing the same check before start() avoids a five-second wait if there is an error in the config. Gentoo-Bug: 487642 Package-Manager: portage-2.2.20.1
Diffstat (limited to 'app-eselect/eselect-php')
-rw-r--r--app-eselect/eselect-php/eselect-php-0.7.1-r7.ebuild (renamed from app-eselect/eselect-php/eselect-php-0.7.1-r6.ebuild)2
-rw-r--r--app-eselect/eselect-php/files/php-fpm.init-r4 (renamed from app-eselect/eselect-php/files/php-fpm.init-r3)17
2 files changed, 15 insertions, 4 deletions
diff --git a/app-eselect/eselect-php/eselect-php-0.7.1-r6.ebuild b/app-eselect/eselect-php/eselect-php-0.7.1-r7.ebuild
index cd210279e6b8..6937b4ad0081 100644
--- a/app-eselect/eselect-php/eselect-php-0.7.1-r6.ebuild
+++ b/app-eselect/eselect-php/eselect-php-0.7.1-r7.ebuild
@@ -33,7 +33,7 @@ src_install() {
fi
if use fpm ; then
- newinitd "${FILESDIR}/php-fpm.init-r3" "php-fpm"
+ newinitd "${FILESDIR}/php-fpm.init-r4" "php-fpm"
systemd_dotmpfilesd "${FILESDIR}/php-fpm.conf"
exeinto /usr/libexec
doexe "${FILESDIR}/php-fpm-launcher"
diff --git a/app-eselect/eselect-php/files/php-fpm.init-r3 b/app-eselect/eselect-php/files/php-fpm.init-r4
index a1b956ea78e4..6502ab9b7d0f 100644
--- a/app-eselect/eselect-php/files/php-fpm.init-r3
+++ b/app-eselect/eselect-php/files/php-fpm.init-r4
@@ -6,7 +6,7 @@ extra_commands="configtest"
set_phpvars() {
PHPSLOT="${SVCNAME#php-fpm-}"
PHP_FPM_PID="/run/php-fpm-${PHPSLOT}.pid"
- if [ ${PHPSLOT} = 'php-fpm' ] ; then
+ if [ "${PHPSLOT}" = "php-fpm" ] ; then
PHPSLOT="$(eselect php show fpm)"
PHP_FPM_PID="/run/php-fpm.pid"
fi
@@ -16,6 +16,9 @@ set_phpvars() {
}
start() {
+ # If configtest fails, we don't have to sit around for five
+ # seconds waiting for a pid to show up.
+ configtest || return $?
ebegin "Starting PHP FastCGI Process Manager"
set_phpvars
start-stop-daemon --start --pidfile "${PHP_FPM_PID}" \
@@ -45,6 +48,7 @@ stop() {
}
reload() {
+ configtest || return $?
ebegin "Reloading PHP FastCGI Process Manager"
set_phpvars
[ -f "${PHP_FPM_PID}" ] && kill -USR2 $(cat "${PHP_FPM_PID}")
@@ -54,6 +58,13 @@ reload() {
configtest() {
ebegin "Testing PHP FastCGI Process Manager configuration"
set_phpvars
- "${PHP_FPM_BIN}" --fpm-config "${PHP_FPM_CONF}" --test
- eend $?
+ # Hide the "test is successful" message (which goes to stderr) if
+ # the test passed, but show the entire output if the test failed
+ # because it may contain hints about the problem.
+ OUTPUT=$( "${PHP_FPM_BIN}" --fpm-config "${PHP_FPM_CONF}" --test 2>&1 )
+
+ # Save this so `echo` doesn't clobber it.
+ local exit_code=$?
+ [ $exit_code -ne 0 ] && echo "${OUTPUT}" >&2
+ eend $exit_code
}