Package: nginx-common
Severity: normal
Tags: patch

Attached is a patch to make the init script show a fail message when
test_nginx_config fails:

# /etc/init.d/nginx reload
[FAIL] Reloading nginx configuration: nginx failed!

The init script only returned a status code when testing the nginx
configuration failed. No failure message at all. Therefor run test_nginx_config
after calling log_daemon_msg.
>From 456a73f4d2fb4d51f2ce091f6b81df60b8e6a086 Mon Sep 17 00:00:00 2001
From: Pim van den Berg <[email protected]>
Date: Mon, 28 Oct 2013 12:23:11 +0100
Subject: [PATCH] initscript: show a proper message when test_nginx_config
 fails

The init script only returned a status code when testing the nginx
configuration failed. No failure message at all. Therefor run test_nginx_config
after calling log_daemon_msg.

Because of the "set -e" the init script return 1 immediately after executing
"$DAEMON -t $DAEMON_OPTS". It didn't even get to the "exit $retvar".
---
 debian/nginx-common.nginx.init |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/debian/nginx-common.nginx.init b/debian/nginx-common.nginx.init
index c8a8887..d269632 100644
--- a/debian/nginx-common.nginx.init
+++ b/debian/nginx-common.nginx.init
@@ -39,12 +39,16 @@ if [ -n "$ULIMIT" ]; then
 fi
 
 test_nginx_config() {
+		set +e
 		$DAEMON -t $DAEMON_OPTS >/dev/null 2>&1
 		retvar=$?
+
 		if [ $retvar -ne 0 ]
 		then
+			log_end_msg $retvar
 			exit $retvar
 		fi
+		set -e
 }
 
 start() {
@@ -59,8 +63,8 @@ stop() {
 
 case "$1" in
 	start)
-		test_nginx_config
 		log_daemon_msg "Starting $DESC" "$NAME"
+		test_nginx_config
 		start
 		log_end_msg $?
 		;;
@@ -72,8 +76,8 @@ case "$1" in
 		;;
 
 	restart|force-reload)
-		test_nginx_config
 		log_daemon_msg "Restarting $DESC" "$NAME"
+		test_nginx_config
 		stop
 		sleep 1
 		start
@@ -81,8 +85,8 @@ case "$1" in
 		;;
 
 	reload)
-		test_nginx_config
 		log_daemon_msg "Reloading $DESC configuration" "$NAME"
+		test_nginx_config
 		start-stop-daemon --stop --signal HUP --quiet --pidfile $PID \
 			--oknodo --exec $DAEMON
 		log_end_msg $?
@@ -90,11 +94,7 @@ case "$1" in
 
 	configtest|testconfig)
 		log_daemon_msg "Testing $DESC configuration"
-		if test_nginx_config; then
-			log_daemon_msg "$NAME"
-		else
-			exit $?
-		fi
+		test_nginx_config
 		log_end_msg $?
 		;;
 
-- 
1.7.10.4

Reply via email to