summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/etc/init.d/umountnfs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'beagle/debian-rfs/etc/init.d/umountnfs.sh')
-rwxr-xr-xbeagle/debian-rfs/etc/init.d/umountnfs.sh108
1 files changed, 108 insertions, 0 deletions
diff --git a/beagle/debian-rfs/etc/init.d/umountnfs.sh b/beagle/debian-rfs/etc/init.d/umountnfs.sh
new file mode 100755
index 0000000..55fa96f
--- /dev/null
+++ b/beagle/debian-rfs/etc/init.d/umountnfs.sh
@@ -0,0 +1,108 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: umountnfs
+# Required-Start:
+# Required-Stop: umountfs
+# Should-Stop: $network $portmap nfs-common
+# Default-Start:
+# Default-Stop: 0 6
+# Short-Description: Unmount all network filesystems except the root fs.
+# Description: Also unmounts all virtual filesystems (proc,
+# devpts, usbfs, sysfs) that are not mounted at the
+# top level.
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+KERNEL="$(uname -s)"
+RELEASE="$(uname -r)"
+. /lib/init/vars.sh
+
+. /lib/lsb/init-functions
+
+case "${KERNEL}:${RELEASE}" in
+ Linux:[01].*|Linux:2.[01].*)
+ FLAGS=""
+ ;;
+ Linux:2.[23].*|Linux:2.4.?|Linux:2.4.?-*|Linux:2.4.10|Linux:2.4.10-*)
+ FLAGS="-f"
+ ;;
+ *)
+ FLAGS="-f -l"
+ ;;
+esac
+
+do_stop () {
+ # Write a reboot record to /var/log/wtmp before unmounting
+ halt -w
+
+ # Remove bootclean flag files (precaution against symlink attacks)
+ rm -f /tmp/.clean /var/lock/.clean /var/run/.clean
+
+ #
+ # Make list of points to unmount in reverse order of their creation
+ #
+
+ exec 9<&0 </etc/mtab
+
+ DIRS=""
+ while read -r DEV MTPT FSTYPE OPTS REST
+ do
+ case "$MTPT" in
+ /|/proc|/dev|/dev/pts|/dev/shm|/proc/*|/sys|/lib/init/rw)
+ continue
+ ;;
+ /var/run)
+ if [ yes = "$RAMRUN" ] ; then
+ continue
+ fi
+ ;;
+ /var/lock)
+ if [ yes = "$RAMLOCK" ] ; then
+ continue
+ fi
+ ;;
+ esac
+ case "$FSTYPE" in
+ nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs)
+ DIRS="$MTPT $DIRS"
+ ;;
+ proc|procfs|linprocfs|devpts|usbfs|usbdevfs|sysfs)
+ DIRS="$MTPT $DIRS"
+ ;;
+ esac
+ case "$OPTS" in
+ _netdev|*,_netdev|_netdev,*|*,_netdev,*)
+ DIRS="$MTPT $DIRS"
+ ;;
+ esac
+ done
+
+ exec 0<&9 9<&-
+
+ if [ "$DIRS" ]
+ then
+ [ "$VERBOSE" = no ] || log_action_begin_msg "Unmounting remote and non-toplevel virtual filesystems"
+ fstab-decode umount $FLAGS $DIRS
+ ES=$?
+ [ "$VERBOSE" = no ] || log_action_end_msg $ES
+ fi
+}
+
+case "$1" in
+ start)
+ # No-op
+ ;;
+ restart|reload|force-reload)
+ echo "Error: argument '$1' not supported" >&2
+ exit 3
+ ;;
+ stop|"")
+ do_stop
+ ;;
+ *)
+ echo "Usage: umountnfs.sh [start|stop]" >&2
+ exit 3
+ ;;
+esac
+
+: