[package] base-files: fix minor problem in init.d/boot
[openwrt.git] / package / base-files / files / etc / init.d / rcS
index 4090aba..3b80432 100755 (executable)
@@ -1,11 +1,26 @@
 #!/bin/sh
 # Copyright (C) 2006 OpenWrt.org
 
-LOGGER="cat"
-[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t ''"
-
-{
+run_scripts() {
        for i in /etc/rc.d/$1*; do
                [ -x $i ] && $i $2 2>&1
-       done 
-} | $LOGGER &
+       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