diff options
author | Bill Nottingham <notting@redhat.com> | 2003-09-03 23:40:39 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2003-09-03 23:40:39 +0000 |
commit | eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0 (patch) | |
tree | 9a1f49740658f728a693b0ab33794e5be40f133d | |
parent | 21df148508c36e212db01c2655ae854f9eb659e5 (diff) | |
download | initscripts-eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0.tar initscripts-eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0.tar.gz initscripts-eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0.tar.bz2 initscripts-eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0.tar.xz initscripts-eef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0.zip |
fix shutdown with NFS root (#100556, <Julian.Blake@cern.ch>)
-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 |