1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
#!/bin/bash
#
# chkconfig: 345 24 76
# description: Starts and stops clvmd
#
#
### BEGIN INIT INFO
# Provides:
### END INIT INFO
. /etc/init.d/functions
LVDISPLAY="/usr/sbin/lvdisplay"
VGCHANGE="/usr/sbin/vgchange"
VGSCAN="/usr/sbin/vgscan"
VGDISPLAY="/usr/sbin/vgdisplay"
VGS="/usr/sbin/vgs"
[ -f /etc/sysconfig/cluster ] && . /etc/sysconfig/cluster
LOCK_FILE="/var/lock/subsys/clvmd"
start()
{
for rtrn in 0
do
if ! pidof clvmd > /dev/null
then
echo -n "Starting clvmd: "
daemon clvmd
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
if ! action "Activating VG $vg:" $VGCHANGE -ayl $vg
then
rtrn=$?
fi
done
else
if ! action "Activating VGs:" $VGCHANGE -ayl
then
rtrn=$?
fi
fi
done
return $rtrn
}
stop()
{
for rtrn in 0
do
if [ -n "$LVM_VGS" ]
then
for vg in $LVM_VGS
do
if ! action "Deactivating VG $vg:" $VGCHANGE -anl $vg
then
rtrn=$?
fi
done
else
# Hack to only deactivate clustered volumes
clustervgs=`$VGDISPLAY \`$VGS --noheadings -o name\` | awk 'BEGIN {RS="VG Name"} {if (/Clustered/) print $1;}'`
for vg in $clustervgs; do
if ! action "Deactivating VG $vg:" $VGCHANGE -anl $vg
then
rtrn=$?
fi
done
fi
[ $rtrn -ne 0 ] && break
echo -n "Stopping clvm:"
killproc clvmd -TERM
rtrn=$?
echo
done
return $rtrn
}
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
start
fi
rtrn=$?
;;
status)
status clvmd
vols=$( $LVDISPLAY -C --nohead 2> /dev/null | awk '($3 ~ /....a./) {print $1}' )
echo active volumes: ${vols:-"(none)"}
rtrn=0
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
;;
esac
exit $rtrn
|