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