5
# Required-Stop: umountroot
8
# Short-Description: Turn off swap and unmount all local file systems.
12
PATH=/sbin:/usr/sbin:/bin:/usr/bin
15
. /lib/lsb/init-functions
20
PROTECTED_MOUNTS="$(sed -n ':a;/^[^ ]* \/ /!{H;n;ba};{H;s/.*//;x;s/\n//;p}' /proc/mounts)"
21
WEAK_MTPTS="" # be gentle, don't use force
24
while read -r DEV MTPT FSTYPE REST
26
echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV $MTPT " && continue
28
/|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/sys/*|/run|/run/*)
33
proc|procfs|linprocfs|sysfs|usbfs|usbdevfs|devpts)
37
TMPFS_MTPTS="$MTPT $TMPFS_MTPTS"
40
if echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV "; then
41
WEAK_MTPTS="$MTPT $WEAK_MTPTS"
43
REG_MTPTS="$MTPT $REG_MTPTS"
50
# Make sure tmpfs file systems are umounted before turning off
51
# swap, to avoid running out of memory if the tmpfs filesystems
56
if [ "$VERBOSE" = no ]
58
log_action_begin_msg "Unmounting temporary filesystems"
59
fstab-decode umount $TMPFS_MTPTS
62
log_daemon_msg "Will now unmount temporary filesystems"
63
fstab-decode umount -v $TMPFS_MTPTS
71
if [ "$VERBOSE" = no ]
73
log_action_begin_msg "Deactivating swap"
77
log_daemon_msg "Will now deactivate swap"
83
# Unmount local filesystems
85
if [ "$WEAK_MTPTS" ]; then
86
# Do not use -f umount option for WEAK_MTPTS
87
if [ "$VERBOSE" = no ]
89
log_action_begin_msg "Unmounting weak filesystems"
90
fstab-decode umount -r -d $WEAK_MTPTS
93
log_daemon_msg "Will now unmount weak filesystems"
94
fstab-decode umount -v -r -d $WEAK_MTPTS
100
if [ "$VERBOSE" = no ]
102
log_action_begin_msg "Unmounting local filesystems"
103
fstab-decode umount -f -r -d $REG_MTPTS
104
log_action_end_msg $?
106
log_daemon_msg "Will now unmount local filesystems"
107
fstab-decode umount -f -v -r -d $REG_MTPTS
117
restart|reload|force-reload)
118
echo "Error: argument '$1' not supported" >&2
125
echo "Usage: $0 start|stop" >&2