~upstart-devel/upstart/upstart-jobs

« back to all changes in this revision

Viewing changes to utopic/etc/init.d/umountfs

  • Committer: Dimitri John Ledkov
  • Date: 2014-11-19 12:58:41 UTC
  • Revision ID: dimitri.j.ledkov@intel.com-20141119125841-98dr37roy8dvcv3b
auto update

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#! /bin/sh
2
 
### BEGIN INIT INFO
3
 
# Provides:          umountfs
4
 
# Required-Start:
5
 
# Required-Stop:     umountroot
6
 
# Default-Start:
7
 
# Default-Stop:      0 6
8
 
# Short-Description: Turn off swap and unmount all local file systems.
9
 
# Description:
10
 
### END INIT INFO
11
 
 
12
 
PATH=/sbin:/usr/sbin:/bin:/usr/bin
13
 
. /lib/init/vars.sh
14
 
 
15
 
. /lib/lsb/init-functions
16
 
 
17
 
umask 022
18
 
 
19
 
do_stop () {
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
22
 
        REG_MTPTS=""
23
 
        TMPFS_MTPTS=""
24
 
        while read -r DEV MTPT FSTYPE REST
25
 
        do
26
 
                echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV $MTPT " && continue
27
 
                case "$MTPT" in
28
 
                  /|/proc|/dev|/.dev|/dev/pts|/dev/shm|/dev/.static/dev|/proc/*|/sys|/sys/*|/run|/run/*)
29
 
                        continue
30
 
                        ;;
31
 
                esac
32
 
                case "$FSTYPE" in
33
 
                  proc|procfs|linprocfs|sysfs|usbfs|usbdevfs|devpts)
34
 
                        continue
35
 
                        ;;
36
 
                  tmpfs)
37
 
                        TMPFS_MTPTS="$MTPT $TMPFS_MTPTS"
38
 
                        ;;
39
 
                  *)
40
 
                        if echo "$PROTECTED_MOUNTS" | grep -qs "^$DEV "; then
41
 
                                WEAK_MTPTS="$MTPT $WEAK_MTPTS"
42
 
                        else
43
 
                                REG_MTPTS="$MTPT $REG_MTPTS"
44
 
                        fi
45
 
                        ;;
46
 
                esac
47
 
        done < /proc/mounts
48
 
 
49
 
        #
50
 
        # Make sure tmpfs file systems are umounted before turning off
51
 
        # swap, to avoid running out of memory if the tmpfs filesystems
52
 
        # use a lot of space.
53
 
        #
54
 
        if [ "$TMPFS_MTPTS" ]
55
 
        then
56
 
                if [ "$VERBOSE" = no ]
57
 
                then
58
 
                        log_action_begin_msg "Unmounting temporary filesystems"
59
 
                        fstab-decode umount $TMPFS_MTPTS
60
 
                        log_action_end_msg $?
61
 
                else
62
 
                        log_daemon_msg "Will now unmount temporary filesystems"
63
 
                        fstab-decode umount -v $TMPFS_MTPTS
64
 
                        log_end_msg $?
65
 
                fi
66
 
        fi
67
 
 
68
 
        #
69
 
        # Deactivate swap
70
 
        #
71
 
        if [ "$VERBOSE" = no ]
72
 
        then
73
 
                log_action_begin_msg "Deactivating swap"
74
 
                swapoff -a >/dev/null
75
 
                log_action_end_msg $?
76
 
        else
77
 
                log_daemon_msg "Will now deactivate swap"
78
 
                swapoff -a -v
79
 
                log_end_msg $?
80
 
        fi
81
 
 
82
 
        #
83
 
        # Unmount local filesystems
84
 
        #
85
 
        if [ "$WEAK_MTPTS" ]; then
86
 
                # Do not use -f umount option for WEAK_MTPTS
87
 
                if [ "$VERBOSE" = no ]
88
 
                then
89
 
                        log_action_begin_msg "Unmounting weak filesystems"
90
 
                        fstab-decode umount -r -d $WEAK_MTPTS
91
 
                        log_action_end_msg $?
92
 
                else
93
 
                        log_daemon_msg "Will now unmount weak filesystems"
94
 
                        fstab-decode umount -v -r -d $WEAK_MTPTS
95
 
                        log_end_msg $?
96
 
                fi
97
 
        fi
98
 
        if [ "$REG_MTPTS" ]
99
 
        then
100
 
                if [ "$VERBOSE" = no ]
101
 
                then
102
 
                        log_action_begin_msg "Unmounting local filesystems"
103
 
                        fstab-decode umount -f -r -d $REG_MTPTS
104
 
                        log_action_end_msg $?
105
 
                else
106
 
                        log_daemon_msg "Will now unmount local filesystems"
107
 
                        fstab-decode umount -f -v -r -d $REG_MTPTS
108
 
                        log_end_msg $?
109
 
                fi
110
 
        fi
111
 
}
112
 
 
113
 
case "$1" in
114
 
  start)
115
 
        # No-op
116
 
        ;;
117
 
  restart|reload|force-reload)
118
 
        echo "Error: argument '$1' not supported" >&2
119
 
        exit 3
120
 
        ;;
121
 
  stop)
122
 
        do_stop
123
 
        ;;
124
 
  *)
125
 
        echo "Usage: $0 start|stop" >&2
126
 
        exit 3
127
 
        ;;
128
 
esac
129
 
 
130
 
: