X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/e26af005b57ca0fae2accbdb9528212b4f1b9ea3..6f14855dac9eacab5ab88e866716376fcc8250cf:/package/base-files/files/etc/init.d/rcS diff --git a/package/base-files/files/etc/init.d/rcS b/package/base-files/files/etc/init.d/rcS index 755e08b9c..3b8043209 100755 --- a/package/base-files/files/etc/init.d/rcS +++ b/package/base-files/files/etc/init.d/rcS @@ -1,10 +1,26 @@ #!/bin/sh # Copyright (C) 2006 OpenWrt.org -( - for i in /etc/rc.d/S*; do - $i boot 2>&1 - done - - sysctl -p >&- -) | logger -s -p 6 -t '' & +run_scripts() { + for i in /etc/rc.d/$1*; do + [ -x $i ] && $i $2 2>&1 + done | $LOGGER +} + +system_config() { + config_get_bool foreground $1 foreground 0 +} + +LOGGER="cat" +[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t sysinit" + +. /etc/functions.sh + +config_load system +config_foreach system_config system + +if [ "$1" = "S" -a "$foreground" != "1" ]; then + run_scripts "$1" "$2" & +else + run_scripts "$1" "$2" +fi