539bbf72e1
PR: 193368 Submitted by: Chris Hutchinson <portmaster@bsdforge.com>
96 lines
1.9 KiB
Bash
96 lines
1.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD: head/net/balance/files/balance.in 340872 2014-01-24 00:14:07Z mat $
|
|
#
|
|
|
|
# PROVIDE: balance
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
#
|
|
# Add the following lines to /etc/rc.conf to enable balance:
|
|
#
|
|
#balance_enable="YES"
|
|
#balance_hosts="host1"
|
|
#balance_host1_flags="-a"
|
|
#balance_host1_address="host1.external.example"
|
|
#balance_host1_ports="http 8180"
|
|
#balance_host1_targets="host1.internal.example"
|
|
#
|
|
# See balance(8) for flags
|
|
#
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=balance
|
|
rcvar=balance_enable
|
|
command=%%PREFIX%%/bin/balance
|
|
|
|
start_cmd=start_cmd
|
|
stop_cmd=stop_cmd
|
|
status_cmd=status_cmd
|
|
|
|
start_cmd()
|
|
{
|
|
if [ -x "${command}" ]; then
|
|
for host in ${balance_hosts}; do
|
|
eval ports=\"\${balance_${host}_ports}\"
|
|
eval flags=\"\${balance_${host}_flags}\"
|
|
eval address=\"\${balance_${host}_address}\"
|
|
eval targets=\"\${balance_${host}_targets}\"
|
|
if [ "" != "${address}" ]; then
|
|
flags="${flags} -b ${address}"
|
|
fi
|
|
for port in ${ports}; do
|
|
"${command}" ${flags} ${port} ${targets}
|
|
done
|
|
done
|
|
fi
|
|
}
|
|
|
|
stop_cmd()
|
|
{
|
|
if [ -x "${command}" ]; then
|
|
for host in ${balance_hosts}; do
|
|
eval ports=\"\${balance_${host}_ports}\"
|
|
eval address=\"\${balance_${host}_address}\"
|
|
flags=""
|
|
if [ "" != "${address}" ]; then
|
|
flags="-b ${address}"
|
|
else
|
|
address='*'
|
|
fi
|
|
for port in ${ports}; do
|
|
echo "balance at ${address}:${port}"
|
|
"${command}" ${flags} -c kill ${port}
|
|
done
|
|
done
|
|
fi
|
|
}
|
|
|
|
status_cmd()
|
|
{
|
|
if [ -x "${command}" ]; then
|
|
for host in ${balance_hosts}; do
|
|
eval ports=\"\${balance_${host}_ports}\"
|
|
eval address=\"\${balance_${host}_address}\"
|
|
flags=""
|
|
if [ "" != "${address}" ]; then
|
|
flags="-b ${address}"
|
|
else
|
|
address='*'
|
|
fi
|
|
for port in ${ports}; do
|
|
echo "balance at ${address}:${port}"
|
|
"${command}" ${flags} -c show ${port}
|
|
done
|
|
done
|
|
fi
|
|
}
|
|
|
|
# set defaults
|
|
|
|
balance_enable=${balance_enable:-"NO"}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|