--- /etc/rc.single 2009-01-22 15:12:03.000000000 -0200 +++ rc.single 2009-01-26 02:17:16.000000000 -0200 @@ -9,16 +9,16 @@ if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then # Shutdown daemons let i=${#DAEMONS[@]} - while [[ i -gt 0 ]]; do - if [[ $(echo ${DAEMONS[$i]} | /bin/grep '^[^\!]' | /usr/bin/wc -l) -eq 1 ]]; then - /etc/rc.d/${DAEMONS[$i]#@} stop + while [ $i -ge 0 ]; do + if [ "${DAEMONS[$i]:0:1}" != '!' ]; then + ck_daemon ${DAEMONS[$i]#@} || stop_daemon ${DAEMONS[$i]#@} fi let i=i-1 done - # find any leftover daemons and shut them down + # find any leftover daemons and shut them down in reverse order if [ -d /var/run/daemons ]; then - for daemon in $(/bin/ls /var/run/daemons); do - /etc/rc.d/$daemon stop + for daemon in $(/bin/ls -1t /var/run/daemons); do + stop_daemon $daemon done fi fi @@ -48,13 +48,7 @@ status "Using static /dev filesystem" /bin/true fi - # try syslog-NG first, then fall back to good ol' syslogd - if [ -x /etc/rc.d/syslog-ng ]; then - /etc/rc.d/syslog-ng start - elif [ -x /etc/rc.d/syslogd ]; then - /etc/rc.d/syslogd start - [ -x /etc/rc.d/klogd ] && /etc/rc.d/klogd start - fi + start_daemon syslog-ng fi if [ "$RUNLEVEL" = "1" ]; then