| #!/bin/bash | |
| # | |
| # Copyright (C) 2007 Red Hat, Inc. All rights reserved. | |
| # | |
| # This copyrighted material is made available to anyone wishing to use, | |
| # modify, copy, or redistribute it subject to the terms and conditions | |
| # of the GNU General Public License v.2. | |
| # | |
| # You should have received a copy of the GNU General Public License | |
| # along with this program; if not, write to the Free Software Foundation, | |
| # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| # | |
| # This file is part of LVM2. | |
| # It is required for the proper handling of failures of LVM2 mirror | |
| # devices that were created using the -m option of lvcreate. | |
| # | |
| # | |
| # chkconfig: 12345 02 99 | |
| # description: Starts and stops dmeventd monitoring for lvm2 | |
| # | |
| ### BEGIN INIT INFO | |
| # Provides: | |
| ### END INIT INFO | |
| . /etc/init.d/functions | |
| VGCHANGE="/usr/sbin/vgchange" | |
| WARN=1 | |
| start() | |
| { | |
| ret=0 | |
| # TODO do we want to separate out already active groups only? | |
| VGS=`vgs --noheadings -o name --config 'log{command_names=0 prefix=" "}' 2> /dev/null` | |
| for vg in $VGS | |
| do | |
| action "Starting monitoring for VG $vg:" $VGCHANGE --monitor y --config 'log{command_names=0 prefix=" "}' $vg || ret=$? | |
| done | |
| return $ret | |
| } | |
| stop() | |
| { | |
| ret=0 | |
| # TODO do we want to separate out already active groups only? | |
| if test "$WARN" = "1"; then | |
| echo "Not stopping monitoring, this is a dangerous operation. Please use force-stop to override." | |
| return 1 | |
| fi | |
| VGS=`vgs --noheadings -o name --config 'log{command_names=0 prefix=" "}' 2> /dev/null` | |
| for vg in $VGS | |
| do | |
| action "Stopping monitoring for VG $vg:" $VGCHANGE --monitor n --config 'log{command_names=0 prefix=" "}' $vg || ret=$? | |
| done | |
| return $ret | |
| } | |
| result=1 | |
| # See how we were called. | |
| case "$1" in | |
| start) | |
| start | |
| result=$? | |
| ;; | |
| force-stop) | |
| WARN=0 | |
| stop | |
| result=$? | |
| ;; | |
| stop) | |
| test "$runlevel" = "0" && WARN=0 | |
| test "$runlevel" = "6" && WARN=0 | |
| stop | |
| result=$? | |
| ;; | |
| restart) | |
| WARN=0 | |
| if stop | |
| then | |
| start | |
| fi | |
| result=$? | |
| ;; | |
| status) | |
| # TODO anyone with an idea how to dump monitored volumes? | |
| ;; | |
| *) | |
| echo $"Usage: $0 {start|stop|restart|status|force-stop}" | |
| ;; | |
| esac | |
| exit $result |