aboutsummaryrefslogtreecommitdiff
path: root/init.d
diff options
context:
space:
mode:
Diffstat (limited to 'init.d')
-rwxr-xr-xinit.d/halt.sh7
-rwxr-xr-xinit.d/localmount10
2 files changed, 14 insertions, 3 deletions
diff --git a/init.d/halt.sh b/init.d/halt.sh
index 1b4acca0..dfcacedd 100755
--- a/init.d/halt.sh
+++ b/init.d/halt.sh
@@ -65,7 +65,12 @@ if [ "${RC_UNAME}" = "Linux" ] ; then
# We need the do_unmount function
. "${RC_LIBDIR}"/sh/rc-mount.sh
eindent
- do_unmount "mount -n -o remount,ro" "^(/dev|/dev/pts|/dev/shm|/proc|/proc/.*|/sys)$"
+ fs=
+ for x in ${RC_NET_FS_LIST} ; do
+ fs="${fs}${fs:+|}${x}"
+ done
+ [ -n "${fs}" ] && fs="^(${fs})$"
+ do_unmount "mount -n -o remount,ro" "^(/dev|/dev/pts|/dev/shm|/proc|/proc/.*|/sys)$" "" "" "${fs}"
eoutdent
eend $?
unmounted=$?
diff --git a/init.d/localmount b/init.d/localmount
index bf12638b..18d84a91 100755
--- a/init.d/localmount
+++ b/init.d/localmount
@@ -202,10 +202,16 @@ stop() {
do_unmount "umount -d" "${no_umounts}" "^/dev/loop"
eoutdent
- # Now everything else
+ # Now everything else, except network filesystems as the
+ # network should be down by this point.
einfo "Unmounting filesystems"
eindent
- do_unmount "umount" "${no_umounts}"
+ local fs=
+ for x in ${RC_NET_FS_LIST} ; do
+ fs="${fs}${fs:+|}${x}"
+ done
+ [ -n "${fs}" ] && fs="^(${fs})$"
+ do_unmount "umount" "${no_umounts}" "" "" "${fs}"
eoutdent
return 0