186d7f5d3SJohn Marino#!/bin/bash 286d7f5d3SJohn Marino# 386d7f5d3SJohn Marino# Copyright (C) 2007 Red Hat, Inc. All rights reserved. 486d7f5d3SJohn Marino# 586d7f5d3SJohn Marino# This copyrighted material is made available to anyone wishing to use, 686d7f5d3SJohn Marino# modify, copy, or redistribute it subject to the terms and conditions 786d7f5d3SJohn Marino# of the GNU General Public License v.2. 886d7f5d3SJohn Marino# 986d7f5d3SJohn Marino# You should have received a copy of the GNU General Public License 1086d7f5d3SJohn Marino# along with this program; if not, write to the Free Software Foundation, 1186d7f5d3SJohn Marino# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1286d7f5d3SJohn Marino# 1386d7f5d3SJohn Marino# This file is part of LVM2. 1486d7f5d3SJohn Marino# It is required for the proper handling of failures of LVM2 mirror 1586d7f5d3SJohn Marino# devices that were created using the -m option of lvcreate. 1686d7f5d3SJohn Marino# 1786d7f5d3SJohn Marino# 1886d7f5d3SJohn Marino# chkconfig: 12345 02 99 1986d7f5d3SJohn Marino# description: Starts and stops dmeventd monitoring for lvm2 2086d7f5d3SJohn Marino# 2186d7f5d3SJohn Marino### BEGIN INIT INFO 2286d7f5d3SJohn Marino# Provides: 2386d7f5d3SJohn Marino### END INIT INFO 2486d7f5d3SJohn Marino 2586d7f5d3SJohn Marino. /etc/init.d/functions 2686d7f5d3SJohn Marino 2786d7f5d3SJohn MarinoVGCHANGE="/usr/sbin/vgchange" 2886d7f5d3SJohn MarinoWARN=1 2986d7f5d3SJohn Marino 3086d7f5d3SJohn Marinostart() 3186d7f5d3SJohn Marino{ 3286d7f5d3SJohn Marino ret=0 3386d7f5d3SJohn Marino # TODO do we want to separate out already active groups only? 3486d7f5d3SJohn Marino VGS=`vgs --noheadings -o name 2> /dev/null` 3586d7f5d3SJohn Marino for vg in $VGS 3686d7f5d3SJohn Marino do 3786d7f5d3SJohn Marino action "Starting monitoring for VG $vg:" $VGCHANGE --monitor y $vg || ret=$? 3886d7f5d3SJohn Marino done 3986d7f5d3SJohn Marino 4086d7f5d3SJohn Marino return $ret 4186d7f5d3SJohn Marino} 4286d7f5d3SJohn Marino 4386d7f5d3SJohn Marino 4486d7f5d3SJohn Marinostop() 4586d7f5d3SJohn Marino{ 4686d7f5d3SJohn Marino ret=0 4786d7f5d3SJohn Marino # TODO do we want to separate out already active groups only? 4886d7f5d3SJohn Marino if test "$WARN" = "1"; then 4986d7f5d3SJohn Marino echo "Not stopping monitoring, this is a dangerous operation. Please use force-stop to override." 5086d7f5d3SJohn Marino return 1 5186d7f5d3SJohn Marino fi 5286d7f5d3SJohn Marino VGS=`vgs --noheadings -o name 2> /dev/null` 5386d7f5d3SJohn Marino for vg in $VGS 5486d7f5d3SJohn Marino do 5586d7f5d3SJohn Marino action "Stopping monitoring for VG $vg:" $VGCHANGE --monitor n $vg || ret=$? 5686d7f5d3SJohn Marino done 5786d7f5d3SJohn Marino return $ret 5886d7f5d3SJohn Marino} 5986d7f5d3SJohn Marino 6086d7f5d3SJohn Marinoresult=1 6186d7f5d3SJohn Marino 6286d7f5d3SJohn Marino# See how we were called. 6386d7f5d3SJohn Marinocase "$1" in 6486d7f5d3SJohn Marino start) 6586d7f5d3SJohn Marino start 6686d7f5d3SJohn Marino result=$? 6786d7f5d3SJohn Marino ;; 6886d7f5d3SJohn Marino 6986d7f5d3SJohn Marino force-stop) 7086d7f5d3SJohn Marino WARN=0 7186d7f5d3SJohn Marino stop 7286d7f5d3SJohn Marino result=$? 7386d7f5d3SJohn Marino ;; 7486d7f5d3SJohn Marino 7586d7f5d3SJohn Marino stop) 7686d7f5d3SJohn Marino test "$runlevel" = "0" && WARN=0 7786d7f5d3SJohn Marino test "$runlevel" = "6" && WARN=0 7886d7f5d3SJohn Marino stop 7986d7f5d3SJohn Marino result=$? 8086d7f5d3SJohn Marino ;; 8186d7f5d3SJohn Marino 8286d7f5d3SJohn Marino restart) 8386d7f5d3SJohn Marino WARN=0 8486d7f5d3SJohn Marino if stop 8586d7f5d3SJohn Marino then 8686d7f5d3SJohn Marino start 8786d7f5d3SJohn Marino fi 8886d7f5d3SJohn Marino result=$? 8986d7f5d3SJohn Marino ;; 9086d7f5d3SJohn Marino 9186d7f5d3SJohn Marino status) 9286d7f5d3SJohn Marino # TODO anyone with an idea how to dump monitored volumes? 9386d7f5d3SJohn Marino ;; 9486d7f5d3SJohn Marino 9586d7f5d3SJohn Marino *) 9686d7f5d3SJohn Marino echo $"Usage: $0 {start|stop|restart|status|force-stop}" 9786d7f5d3SJohn Marino ;; 9886d7f5d3SJohn Marinoesac 9986d7f5d3SJohn Marino 10086d7f5d3SJohn Marinoexit $result 101