summaryrefslogtreecommitdiffstats
path: root/scripts/lvm2_monitoring_init_red_hat.in
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2009-09-16 23:22:40 +0000
committerAlasdair Kergon <agk@redhat.com>2009-09-16 23:22:40 +0000
commit595eaf925c846fe0a1f23ed9928a5e588838e032 (patch)
tree89d86db77204874102ed45a2fb79e1456863e342 /scripts/lvm2_monitoring_init_red_hat.in
parent5a446cfbb91ed3a0fd76dd922641b965eccd3a9f (diff)
downloadlvm2-595eaf925c846fe0a1f23ed9928a5e588838e032.tar.gz
lvm2-595eaf925c846fe0a1f23ed9928a5e588838e032.tar.xz
lvm2-595eaf925c846fe0a1f23ed9928a5e588838e032.zip
Update lvm2_monitoring script.
Diffstat (limited to 'scripts/lvm2_monitoring_init_red_hat.in')
-rw-r--r--scripts/lvm2_monitoring_init_red_hat.in119
1 files changed, 119 insertions, 0 deletions
diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
new file mode 100644
index 00000000..18beae67
--- /dev/null
+++ b/scripts/lvm2_monitoring_init_red_hat.in
@@ -0,0 +1,119 @@
+#!/bin/bash
+#
+# Copyright (C) 2007-2009 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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
+#
+# For Red-Hat-based distributions such as Fedora, RHEL, CentOS.
+#
+### BEGIN INIT INFO
+# Provides: lvm2-monitoring
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 1 2 3 4 5
+# Default-Stop: 0 6
+# Short-Description: Monitoring of LVM2 mirrors, snapshots etc. using dmeventd
+### END INIT INFO
+
+. /etc/init.d/functions
+
+DAEMON=lvm2_monitoring
+
+exec_prefix=@exec_prefix@
+sbindir=@sbindir@
+
+VGCHANGE=${sbindir}/vgchange
+VGS=${sbindir}/vgs
+
+LOCK_FILE="/var/lock/subsys/$DAEMON"
+
+WARN=1
+
+start()
+{
+ ret=0
+ # TODO do we want to separate out already active groups only?
+ VGSLIST=`$VGS --noheadings -o name 2> /dev/null`
+ for vg in $VGSLIST
+ do
+ action "Starting monitoring for VG $vg:" $VGCHANGE --monitor y $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
+ VGSLIST=`$VGS --noheadings -o name 2> /dev/null`
+ for vg in $VGSLIST
+ do
+ action "Stopping monitoring for VG $vg:" $VGCHANGE --monitor n $vg || ret=$?
+ done
+ return $ret
+}
+
+rtrn=1
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ rtrn=$?
+ [ $rtrn = 0 ] && touch $LOCK_FILE
+ ;;
+
+ force-stop)
+ WARN=0
+ stop
+ rtrn=$?
+ [ $rtrn = 0 ] && rm -f $LOCK_FILE
+ ;;
+
+ stop)
+ test "$runlevel" = "0" && WARN=0
+ test "$runlevel" = "6" && WARN=0
+ stop
+ rtrn=$?
+ [ $rtrn = 0 ] && rm -f $LOCK_FILE
+ ;;
+
+ restart)
+ WARN=0
+ if stop
+ then
+ start
+ fi
+ rtrn=$?
+ ;;
+
+ status)
+ # TODO anyone with an idea how to dump monitored volumes?
+ ;;
+
+ *)
+ echo $"Usage: $0 {start|stop|restart|status|force-stop}"
+ ;;
+esac
+
+exit $rtrn