diff options
Diffstat (limited to 'rc.shutdown')
-rwxr-xr-x | rc.shutdown | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/rc.shutdown b/rc.shutdown index 96611b7..1e1c6bf 100755 --- a/rc.shutdown +++ b/rc.shutdown @@ -23,7 +23,15 @@ if [ -x /etc/rc.local.shutdown ]; then fi 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 @@ -31,12 +39,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 # Terminate all processes |