#!/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"