Tizen 2.1 base
[external/device-mapper.git] / scripts / lvm2_monitoring_init_rhel4
1 #!/bin/bash
2 #
3 # Copyright (C) 2007 Red Hat, Inc. All rights reserved.
4 #
5 # This copyrighted material is made available to anyone wishing to use,
6 # modify, copy, or redistribute it subject to the terms and conditions
7 # of the GNU General Public License v.2.
8 #
9 # You should have received a copy of the GNU General Public License
10 # along with this program; if not, write to the Free Software Foundation,
11 # Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
12 #
13 # This file is part of LVM2.
14 # It is required for the proper handling of failures of LVM2 mirror
15 # devices that were created using the -m option of lvcreate.
16 #
17 #
18 # chkconfig: 12345 02 99
19 # description: Starts and stops dmeventd monitoring for lvm2
20 #              
21 ### BEGIN INIT INFO
22 # Provides: 
23 ### END INIT INFO
24
25 . /etc/init.d/functions
26
27 VGCHANGE="/usr/sbin/vgchange"
28 WARN=1
29
30 start()
31 {
32         ret=0
33         # TODO do we want to separate out already active groups only?
34         VGS=`vgs --noheadings -o name 2> /dev/null`
35         for vg in $VGS
36         do
37             action "Starting monitoring for VG $vg:" $VGCHANGE --monitor y $vg || ret=$?
38         done
39
40         return $ret
41 }
42
43
44 stop()
45 {
46         ret=0
47         # TODO do we want to separate out already active groups only?
48         if test "$WARN" = "1"; then
49            echo "Not stopping monitoring, this is a dangerous operation. Please use force-stop to override."
50            return 1
51         fi
52         VGS=`vgs --noheadings -o name 2> /dev/null`
53         for vg in $VGS
54         do
55             action "Stopping monitoring for VG $vg:" $VGCHANGE --monitor n $vg || ret=$?
56         done
57         return $ret
58 }
59
60 result=1
61
62 # See how we were called.
63 case "$1" in
64   start)
65         start
66         result=$?
67         ;;
68
69   force-stop)
70         WARN=0
71         stop
72         result=$?
73         ;;
74
75   stop)
76         test "$runlevel" = "0" && WARN=0
77         test "$runlevel" = "6" && WARN=0
78         stop
79         result=$?
80         ;;
81
82   restart)
83         WARN=0
84         if stop
85         then
86                 start
87         fi 
88         result=$?
89         ;;
90
91   status)
92         # TODO anyone with an idea how to dump monitored volumes?
93         ;;
94
95   *)
96         echo $"Usage: $0 {start|stop|restart|status|force-stop}"
97         ;;
98 esac
99
100 exit $result