diff options
-rwxr-xr-x | rc.d/init.d/halt | 13 | ||||
-rwxr-xr-x | rc.d/init.d/killall | 3 |
2 files changed, 11 insertions, 5 deletions
diff --git a/rc.d/init.d/halt b/rc.d/init.d/halt index dfb9178d..d7d113f5 100755 --- a/rc.d/init.d/halt +++ b/rc.d/init.d/halt @@ -25,7 +25,7 @@ runcmd() { halt_get_remaining() { awk '$2 ~ /^\/$|^\/proc|^\/dev/{next} $3 == "tmpfs" || $3 == "proc" {print $2 ; next} - /(^#|loopfs|autofs|devfs|^none|^\/dev\/root)/ {next} + /(^#|loopfs|autofs|devfs|^none|^\/dev\/ram|^\/dev\/root)/ {next} {print $2}' /proc/mounts } @@ -172,12 +172,15 @@ done # remove the crash indicator flag rm -f /.autofsck -# Try them all, one last time. -umount -a -f +# Try all file systems other than root and RAM disks, one last time. +mount | awk '/!( \/ |^\/dev\/root|^\/dev\/ram)/ { print $3 }' | \ + while read line; do + umount -f $line +done # Remount read only anything that's left mounted. -#echo $"Remounting remaining filesystems (if any) readonly" -mount | awk '/( \/ |^\/dev\/root)/ { print $3 }' | while read line; do +# echo $"Remounting remaining filesystems readonly" +mount | awk '{ print $3 }' | while read line; do mount -n -o ro,remount $line done diff --git a/rc.d/init.d/killall b/rc.d/init.d/killall index 26f2c109..982ed2f3 100755 --- a/rc.d/init.d/killall +++ b/rc.d/init.d/killall @@ -9,6 +9,9 @@ for i in /var/lock/subsys/* ; do # Get the subsystem name. subsys=${i#/var/lock/subsys/} + + # Networking could be needed for NFS root. + [ $subsys = network ] && continue # Bring the subsystem down. if [ -f /etc/init.d/$subsys.init ]; then |