]> sourceware.org Git - lvm2.git/commitdiff
generate init script
authorAlasdair Kergon <agk@redhat.com>
Wed, 19 Nov 2008 20:14:24 +0000 (20:14 +0000)
committerAlasdair Kergon <agk@redhat.com>
Wed, 19 Nov 2008 20:14:24 +0000 (20:14 +0000)
scripts/clvmd_init_red_hat.in [new file with mode: 0644]

diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in
new file mode 100644 (file)
index 0000000..9756bd1
--- /dev/null
@@ -0,0 +1,147 @@
+#!/bin/bash
+#
+# chkconfig: - 24 76
+# description: Starts and stops clvmd
+#
+# For Red-Hat-based distributions such as Fedora, RHEL, CentOS.
+#             
+### BEGIN INIT INFO
+# Provides: 
+### END INIT INFO
+
+. /etc/init.d/functions
+
+DAEMON=clvmd
+
+exec_prefix=@exec_prefix@
+sbindir=@sbindir@
+
+LVDISPLAY=${sbindir}/lvdisplay
+VGCHANGE=${sbindir}/vgchange
+VGSCAN=${sbindir}/vgscan
+VGDISPLAY=${sbindir}/vgdisplay
+VGS=${sbindir}/vgs
+
+CLVMDOPTS="-T20"
+
+[ -f /etc/sysconfig/cluster ] && . /etc/sysconfig/cluster
+
+LOCK_FILE="/var/lock/subsys/$DAEMON"
+
+start()
+{
+       for rtrn in 0
+       do
+               if ! pidof $DAEMON > /dev/null 
+               then 
+                       echo -n "Starting $DAEMON: "
+                       daemon $DAEMON $CLVMDOPTS
+                       rtrn=$?
+                       echo
+                       if [ $rtrn -ne 0 ]
+                       then
+                               break
+                       fi
+               fi      
+               # refresh cache
+               $VGSCAN  > /dev/null 2>&1
+               
+               if [ -n "$LVM_VGS" ]
+               then
+                       for vg in $LVM_VGS
+                       do
+                               action "Activating VG $vg:" $VGCHANGE -ayl $vg || rtrn=$?
+                       done
+               else
+                       action "Activating VGs:" $VGCHANGE -ayl || rtrn=$?
+               fi
+       done
+
+       return $rtrn
+}
+
+stop()
+{
+       for rtrn in 0
+       do
+               if [ -n "$LVM_VGS" ]
+               then
+                       for vg in $LVM_VGS
+                       do
+                               action "Deactivating VG $vg:" $VGCHANGE -anl $vg || rtrn=$?
+                       done
+               else
+                       # Hack to only deactivate clustered volumes
+                       clustervgs=`$VGDISPLAY 2> /dev/null | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'`
+                       for vg in $clustervgs; do
+                               action "Deactivating VG $vg:" $VGCHANGE -anl $vg || rtrn=$?
+                       done
+               fi
+
+               [ $rtrn -ne 0 ] && break
+
+               echo -n "Stopping clvm:"
+               killproc $DAEMON -TERM
+               rtrn=$?
+               echo
+       done
+       
+       return $rtrn
+}
+
+wait_for_finish()
+{
+       count=0
+
+       while [ "$count" -le 10 -a -n "`pidof $DAEMON`" ]
+       do
+               sleep 1
+               count=$((count + 1))
+       done
+       
+       if [ `pidof $DAEMON` ]
+       then
+               return 1
+       else
+               return 0
+       fi
+}
+
+rtrn=1
+
+# See how we were called.
+case "$1" in
+  start)
+       start
+       rtrn=$?
+       [ $rtrn = 0 ] && touch $LOCK_FILE
+       ;;
+
+  stop)
+       stop
+       rtrn=$?
+       [ $rtrn = 0 ] && rm -f $LOCK_FILE
+       ;;
+
+  restart)
+       if stop
+       then
+               wait_for_finish
+               start
+       fi 
+       rtrn=$?
+       ;;
+
+  status)
+       status $DAEMON
+       rtrn=$?
+       vols=$( $LVDISPLAY -C --nohead 2> /dev/null | awk '($3 ~ /....a./) {print $1}' )
+       echo active volumes: ${vols:-"(none)"}
+       ;;
+
+  *)
+       echo $"Usage: $0 {start|stop|restart|status}"
+       ;;
+esac
+
+exit $rtrn
This page took 0.040079 seconds and 5 git commands to generate.