summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2003-09-03 23:41:31 +0000
committerBill Nottingham <notting@redhat.com>2003-09-03 23:41:31 +0000
commit48eb30850210f0aa500768ee11af63160dbbcff4 (patch)
tree81173819d5128101f3abdcb77f9fdb115d8f184f
parent5c438b1b4a470d5fba3b9a256223a6f3b6dbb933 (diff)
downloadinitscripts-48eb30850210f0aa500768ee11af63160dbbcff4.tar.gz
initscripts-48eb30850210f0aa500768ee11af63160dbbcff4.tar.xz
initscripts-48eb30850210f0aa500768ee11af63160dbbcff4.zip
fix shutdown with NFS root (#100556, <Julian.Blake@cern.ch>)
-rwxr-xr-xrc.d/init.d/halt13
-rwxr-xr-xrc.d/init.d/killall3
2 files changed, 11 insertions, 5 deletions
diff --git a/rc.d/init.d/halt b/rc.d/init.d/halt
index 9063feda..fcb15aa3 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