From abeacaed86e297923bd69de597a7e30dbf3cb990 Mon Sep 17 00:00:00 2001 From: Gerardo Exequiel Pozzi Date: Thu, 30 Jul 2009 15:00:06 -0300 Subject: Shutdown non-rc.conf daemons first at rc.single To match with commit 7f1bd75ee6aaffddf47e704c46fbab5396b7dd19 for rc.shutdown. Flip the order in which daemons are shutdown. First we scan for all daemons that are NOT in rc.conf and shut those down (order is based on ls, so it is dependent on LC_COLLATE). Afterwards, we shut down all daemons in rc.conf, in order. Signed-off-by: Gerardo Exequiel Pozzi Signed-off-by: Aaron Griffin --- rc.single | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'rc.single') diff --git a/rc.single b/rc.single index 6eaf063..af2ae16 100755 --- a/rc.single +++ b/rc.single @@ -7,7 +7,15 @@ . /etc/rc.d/functions if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then - # Shutdown daemons + # Find daemons NOT in the DAEMONS array. Shut these down first + if [ -d /var/run/daemons ]; then + for daemon in $(/bin/ls -1t /var/run/daemons); do + if ! in_array $daemon ${DAEMONS}; then + stop_daemon $daemon + fi + done + fi + # Shutdown daemons in reverse order let i=${#DAEMONS[@]}-1 while [ $i -ge 0 ]; do if [ "${DAEMONS[$i]:0:1}" != '!' ]; then @@ -15,12 +23,6 @@ if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then fi let i=i-1 done - # find any leftover daemons and shut them down in reverse order - if [ -d /var/run/daemons ]; then - for daemon in $(/bin/ls -1t /var/run/daemons); do - stop_daemon $daemon - done - fi fi if [ "$PREVLEVEL" != "N" ]; then -- cgit v1.2.3