File: clvmd_init_rhel4

package info (click to toggle)
lvm2 2.02.06-4etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 3,252 kB
  • ctags: 3,386
  • sloc: ansic: 38,778; sh: 3,679; makefile: 738
file content (132 lines) | stat: -rw-r--r-- 2,013 bytes parent folder | download | duplicates (2)
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