aboutsummaryrefslogtreecommitdiffstats
path: root/rc.d
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2003-09-03 23:40:39 +0000
committerBill Nottingham <notting@redhat.com>2003-09-03 23:40:39 +0000
commiteef578ceb9d0339c661f1cbeb8ae8c99f7c4ddc0 (patch)
tree9a1f49740658f728a693b0ab33794e5be40f133d /rc.d
parent21df148508c36e212db01c2655ae854f9eb659e5 (diff)
downloadinitscripts-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>)
Diffstat (limited to 'rc.d')
-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 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