summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-04-30 22:59:18 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-04-30 22:59:18 +0000
commita55e31b51709c9fdfdf435c21c86d007b109f26e (patch)
tree30c145860775b82dd10af23cf5ee045ee7c44b9c /package
parent6c29c7e73ed38155fdc2b86e52d203dd3479945c (diff)
rcS: wait for init scripts to complete before initiating the shutdown (patch from #5032)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15530 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rwxr-xr-xpackage/base-files/files/etc/init.d/boot2
-rwxr-xr-xpackage/base-files/files/etc/init.d/rcS16
2 files changed, 12 insertions, 6 deletions
diff --git a/package/base-files/files/etc/init.d/boot b/package/base-files/files/etc/init.d/boot
index 85064248e..12226be78 100755
--- a/package/base-files/files/etc/init.d/boot
+++ b/package/base-files/files/etc/init.d/boot
@@ -52,7 +52,7 @@ start() {
killall -q hotplug2
[ -x /sbin/hotplug2 ] && /sbin/hotplug2 --override --persistent \
- --max-children 1 --no-coldplug &
+ --max-children 1 --no-coldplug >/dev/null 2>&1 &
# the coldplugging of network interfaces needs to happen later, so we do it manually here
for iface in $(awk -F: '/:/ {print $1}' /proc/net/dev); do
diff --git a/package/base-files/files/etc/init.d/rcS b/package/base-files/files/etc/init.d/rcS
index 8c9114d33..c135024be 100755
--- a/package/base-files/files/etc/init.d/rcS
+++ b/package/base-files/files/etc/init.d/rcS
@@ -1,11 +1,17 @@
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
+run_scripts() {
+ for i in /etc/rc.d/$1*; do
+ [ -x $i ] && $i $2 2>&1
+ done | $LOGGER
+}
+
LOGGER="cat"
[ -x /usr/bin/logger ] && LOGGER="logger -s -p 6 -t sysinit"
-{
- for i in /etc/rc.d/$1*; do
- [ -x $i ] && $i $2 2>&1
- done
-} | $LOGGER &
+if [ "$1" = "S" ]; then
+ run_scripts "$1" "$2" &
+else
+ run_scripts "$1" "$2"
+fi