summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/etc/init.d/umountfs
diff options
context:
space:
mode:
authorManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
committerManuel Traut <manut@mecka.net>2011-04-29 09:09:27 +0200
commit5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 (patch)
tree4407c087b9fb5432b1dc11e70b52dacfa0b99feb /beagle/debian-rfs/etc/init.d/umountfs
parent60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff)
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'beagle/debian-rfs/etc/init.d/umountfs')
-rwxr-xr-xbeagle/debian-rfs/etc/init.d/umountfs144
1 files changed, 144 insertions, 0 deletions
diff --git a/beagle/debian-rfs/etc/init.d/umountfs b/beagle/debian-rfs/etc/init.d/umountfs
new file mode 100755
index 0000000..7df5e3f
--- /dev/null
+++ b/beagle/debian-rfs/etc/init.d/umountfs
@@ -0,0 +1,144 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: umountfs
+# Required-Start:
+# Required-Stop: umountroot
+# Default-Start:
+# Default-Stop: 0 6
+# Short-Description: Turn off swap and unmount all local file systems.
+# Description:
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+. /lib/init/vars.sh
+
+. /lib/lsb/init-functions
+
+umask 022
+
+do_stop () {
+ exec 9<&0 </proc/mounts
+
+ PROTECTED_MOUNTS="$(sed -n '0,/^\/[^ ]* \/ /p' /proc/mounts)"
+ WEAK_MTPTS="" # be gentle, don't use force
+ REG_MTPTS=""
+ TMPFS_MTPTS=""
+ while read -r DEV MTPT FSTYPE REST
+ do
+ echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV $MTPT " && continue
+ case "$MTPT" in
+ /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/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
+ proc|procfs|linprocfs|sysfs|usbfs|usbdevfs|devpts)
+ continue
+ ;;
+ tmpfs)
+ TMPFS_MTPTS="$MTPT $TMPFS_MTPTS"
+ ;;
+ *)
+ if echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV "; then
+ WEAK_MTPTS="$MTPT $WEAK_MTPTS"
+ else
+ REG_MTPTS="$MTPT $REG_MTPTS"
+ fi
+ ;;
+ esac
+ done
+
+ exec 0<&9 9<&-
+
+ #
+ # Make sure tmpfs file systems are umounted before turning off
+ # swap, to avoid running out of memory if the tmpfs filesystems
+ # use a lot of space.
+ #
+ if [ "$TMPFS_MTPTS" ]
+ then
+ if [ "$VERBOSE" = no ]
+ then
+ log_action_begin_msg "Unmounting temporary filesystems"
+ fstab-decode umount $TMPFS_MTPTS
+ log_action_end_msg $?
+ else
+ log_daemon_msg "Will now unmount temporary filesystems"
+ fstab-decode umount -v $TMPFS_MTPTS
+ log_end_msg $?
+ fi
+ fi
+
+ #
+ # Deactivate swap
+ #
+ if [ "$VERBOSE" = no ]
+ then
+ log_action_begin_msg "Deactivating swap"
+ swapoff -a >/dev/null
+ log_action_end_msg $?
+ else
+ log_daemon_msg "Will now deactivate swap"
+ swapoff -a -v
+ log_end_msg $?
+ fi
+
+ #
+ # Unmount local filesystems
+ #
+ if [ "$WEAK_MTPTS" ]; then
+ # Do not use -f umount option for WEAK_MTPTS
+ if [ "$VERBOSE" = no ]
+ then
+ log_action_begin_msg "Unmounting weak filesystems"
+ fstab-decode umount -r -d $WEAK_MTPTS
+ log_action_end_msg $?
+ else
+ log_daemon_msg "Will now unmount weak filesystems"
+ fstab-decode umount -v -r -d $WEAK_MTPTS
+ log_end_msg $?
+ fi
+ fi
+ if [ "$REG_MTPTS" ]
+ then
+ if [ "$VERBOSE" = no ]
+ then
+ log_action_begin_msg "Unmounting local filesystems"
+ fstab-decode umount -f -r -d $REG_MTPTS
+ log_action_end_msg $?
+ else
+ log_daemon_msg "Will now unmount local filesystems"
+ fstab-decode umount -f -v -r -d $REG_MTPTS
+ log_end_msg $?
+ fi
+ 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: $0 start|stop" >&2
+ exit 3
+ ;;
+esac
+
+: