summaryrefslogtreecommitdiffstats
path: root/net/ucarp/files/ucarp.init
blob: c00baf4b63c28e440dc5444330c2b2384b4c721e (plain)
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
#!/bin/sh /etc/rc.common

START=50
CONF=/etc/ucarp.conf
IP=$(which ip)
UCARP=$(which ucarp)
ARPING=$(which arping)

start() {
	. ${CONF}

	[ ${BACKGROUND} = 1 ] && daemon="--daemonize"

	cat > /var/run/ucarp-vip-up <<EOF
#!/bin/sh

$IP addr add ${VIP}/${VMASK} dev ${IF}

EOF
	for ip in ${PINGIP}
	do
	cat >> /var/run/ucarp-vip-up <<EOF
$ARPING -c 2 -I ${IF} -s ${VIP} ${ip}
EOF
	done
	chmod a+x /var/run/ucarp-vip-up

	cat > /var/run/ucarp-vip-down <<EOF
#!/bin/sh

$IP addr del ${VIP}/${VMASK} dev ${IF}

EOF
	chmod a+x /var/run/ucarp-vip-down

	$UCARP --interface=${IF} --srcip=${MYIP} --vhid=1 --pass=${PASSWORD} \
			--addr=${VIP} --nomcast $daemon \
			--upscript=/var/run/ucarp-vip-up --downscript=/var/run/ucarp-vip-down
}

stop() {
	killall ucarp
}