diff options
Diffstat (limited to 'init.d')
-rwxr-xr-x | init.d/halt.sh | 7 | ||||
-rwxr-xr-x | init.d/localmount | 10 |
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 |