Home | History | Annotate | Line # | Download | only in scripts
      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
    101