mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-01-10 03:01:44 +01:00
68 lines
1.4 KiB
Plaintext
Executable File
68 lines
1.4 KiB
Plaintext
Executable File
#!/sbin/runscript
|
|
# Copyright 1999-2008 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: $
|
|
|
|
|
|
# A simple script to start and stop a ucarp instance
|
|
DAEMON=/usr/sbin/ucarp
|
|
|
|
IFACE="${SVCNAME#*.}"
|
|
if [ -n "$IFACE" ] && [ "${SVCNAME}" != "ucarp" ]; then
|
|
UP="/etc/ucarp/vip-up-$IFACE.sh"
|
|
DOWN="/etc/ucarp/vip-down-$IFACE.sh"
|
|
. /etc/conf.d/ucarp.$IFACE
|
|
else
|
|
UP="/etc/ucarp/vip-up.sh"
|
|
DOWN="/etc/ucarp/vip-down.sh"
|
|
fi
|
|
|
|
|
|
# Get the primary ip address for a given interface
|
|
get_first_ip() {
|
|
local foo=$( ip addr show $1 )
|
|
[ $? != 0 ] && foo=""
|
|
echo $( echo "$foo" | grep "inet " | head -n1 | \
|
|
sed "s+^.*inet ++g; s+/.*$++g" )
|
|
}
|
|
|
|
if [ -z "$REALIP" ]; then
|
|
REALIP=$( get_first_ip $IFACE )
|
|
fi
|
|
|
|
depend () {
|
|
need net
|
|
after firewall
|
|
}
|
|
|
|
start () {
|
|
ebegin "Starting ucarp $IFACE"
|
|
start-stop-daemon --start --exec $DAEMON \
|
|
--background -m -p /var/run/ucarp-$IFACE.pid -- \
|
|
-i $IFACE -s $REALIP -v $VHID -p $PASSWORD -a $VIP \
|
|
-u $UP -d $DOWN $EXTRA_ARGS -z
|
|
eend $?
|
|
}
|
|
|
|
status () {
|
|
ebegin "ucarp $IFACE is ..."
|
|
PIDS=$( pidof $( basename $DAEMON ))
|
|
PID=$( cat /var/run/ucarp-$IFACE.pid 2>/dev/null )
|
|
[ -n "$PID" ] && OK=$( echo "$PIDS" | grep "$PID" )
|
|
if [ -n "$OK" ]; then
|
|
echo "running"
|
|
exit 0
|
|
else
|
|
echo "not running"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
stop () {
|
|
ebegin "Shutting down ucarp $IFACE"
|
|
start-stop-daemon --stop --exec $DAEMON \
|
|
-p /var/run/ucarp-$IFACE.pid
|
|
eend $?
|
|
}
|
|
|