Added check-reload service target to show possible errors issued by nginx on reload.
diff --git a/debian/nginx.init.in b/debian/nginx.init.in
index eb0b0bb..16ab45a 100644
--- a/debian/nginx.init.in
+++ b/debian/nginx.init.in
@@ -29,6 +29,7 @@
PIDFILE=${PIDFILE-/var/run/nginx.pid}
SLEEPSEC=1
UPGRADEWAITLOOPS=5
+CHECKSLEEP=${CHECKSLEEP-3}
[ -x $DAEMON ] || exit 0
@@ -103,6 +104,16 @@
return $RETVAL
}
+do_checkreload() {
+ templog=`/bin/mktemp --tmpdir nginx-check-reload-XXXXXX.log`
+ trap '/bin/rm -f $templog' 0
+ /usr/bin/tail --pid=$$ -n 0 --follow=name /var/log/nginx/error.log > $templog &
+ /bin/sleep 1
+ start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE
+ /bin/sleep $CHECKSLEEP
+ /bin/grep -E "\[emerg\]|\[alert\]" $templog
+}
+
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
@@ -153,8 +164,11 @@
;;
esac
;;
+ check-reload)
+ do_checkreload
+ ;;
*)
- echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload|upgrade|configtest}" >&2
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload|upgrade|configtest|check-reload}" >&2
exit 3
;;
esac
diff --git a/rpm/SOURCES/nginx.check-reload.sh b/rpm/SOURCES/nginx.check-reload.sh
new file mode 100644
index 0000000..7cd00a8
--- /dev/null
+++ b/rpm/SOURCES/nginx.check-reload.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Legacy action script to visually check if nginx fails to reload
+
+# Source function library.
+[ -f /etc/rc.d/init.d/functions ] && . /etc/rc.d/init.d/functions
+
+prog=nginx
+pidfile=`/usr/bin/systemctl show -p PIDFile nginx.service | sed 's/^PIDFile=//' | tr ' ' '\n'`
+CHECKSLEEP=3
+
+templog=`/bin/mktemp --tmpdir nginx-check-reload-XXXXXX.log`
+trap '/bin/rm -f $templog' 0
+/usr/bin/tail --pid=$$ -n 0 --follow=name /var/log/nginx/error.log > $templog &
+/bin/sleep 1
+/bin/echo -n $"Sending reload signal to $prog: "
+killproc -p ${pidfile} ${prog} -HUP
+/bin/echo
+/bin/sleep $CHECKSLEEP
+/bin/grep -E "\[emerg\]|\[alert\]" $templog
+
+exit 0
diff --git a/rpm/SOURCES/nginx.init.in b/rpm/SOURCES/nginx.init.in
index 609afee..06f9670 100755
--- a/rpm/SOURCES/nginx.init.in
+++ b/rpm/SOURCES/nginx.init.in
@@ -40,6 +40,7 @@
pidfile=${PIDFILE-/var/run/nginx.pid}
SLEEPMSEC=${SLEEPMSEC-200000}
UPGRADEWAITLOOPS=${UPGRADEWAITLOOPS-5}
+CHECKSLEEP=${CHECKSLEEP-3}
RETVAL=0
start() {
@@ -110,6 +111,18 @@
status -p ${pidfile} -b ${nginx} ${nginx}
}
+check_reload() {
+ templog=`/bin/mktemp --tmpdir nginx-check-reload-XXXXXX.log`
+ trap '/bin/rm -f $templog' 0
+ /usr/bin/tail --pid=$$ -n 0 --follow=name /var/log/nginx/error.log > $templog &
+ /bin/sleep 1
+ /bin/echo -n $"Sending reload signal to $prog: "
+ killproc -p ${pidfile} ${prog} -HUP
+ /bin/echo
+ /bin/sleep $CHECKSLEEP
+ /bin/grep -E "\[emerg\]|\[alert\]" $templog
+}
+
# See how we were called.
case "$1" in
start)
@@ -144,8 +157,11 @@
configtest)
configtest
;;
+ check-reload)
+ check_reload
+ ;;
*)
- echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest}"
+ echo $"Usage: $prog {start|stop|restart|condrestart|try-restart|force-reload|upgrade|reload|status|help|configtest|check-reload}"
RETVAL=2
esac