--- rc.shutdown.old 2007-02-14 21:00:58.000000000 +0100 +++ rc.shutdown 2007-02-14 22:18:27.000000000 +0100 @@ -23,20 +23,10 @@ fi if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then - # Shutdown daemons - let i=${#DAEMONS[@]} - while [[ i -ge 0 ]]; do - if [[ `echo ${DAEMONS[$i]} | grep '^[^\!]' | wc -l` -eq 1 ]]; then - /etc/rc.d/${DAEMONS[$i]#@} stop - fi - let i=i-1 + # Shutdown daemons in reversed order of starting + for daemon in `ls -t /var/run/daemons`; do + /etc/rc.d/$daemon stop done - # find any leftover daemons and shut them down - if [ -d /var/run/daemons ]; then - for daemon in `ls /var/run/daemons`; do - /etc/rc.d/$daemon stop - done - fi fi # Terminate all processes