You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

96 lines
2.9 KiB

#!@l_prefix@/bin/openpkg rc
##
## rc.quagga -- Run-Commands
##
%config
quagga_enable="$openpkg_rc_def"
quagga_protocols="rip ospf bgp"
quagga_flags=""
quagga_bind="127.0.0.1"
quagga_port="2601"
quagga_rip_flags=""
quagga_rip_bind="${quagga_bind}"
quagga_rip_port="2602"
quagga_ospf_flags=""
quagga_ospf_bind="${quagga_bind}"
quagga_ospf_port="2604"
quagga_bgp_flags=""
quagga_bgp_bind="${quagga_bind}"
quagga_bgp_port="2605"
quagga_log_prolog="true"
quagga_log_epilog="true"
quagga_log_numfiles="10"
quagga_log_minsize="1M"
quagga_log_complevel="9"
%status -u @l_susr@ -o
quagga_usable="unknown"
quagga_active="no"
if [ -f @l_prefix@/var/quagga/zebra.pid ]; then
kill -0 `cat @l_prefix@/var/quagga/zebra.pid` >/dev/null 2>&1
if [ $? -eq 0 ]; then
quagga_active="yes"
fi
fi
echo "quagga_enable=\"$quagga_enable\""
echo "quagga_usable=\"$quagga_usable\""
echo "quagga_active=\"$quagga_active\""
%start -u @l_susr@
rcService quagga enable yes || exit 0
rcService quagga active yes && exit 0
cd @l_prefix@/etc/quagga
for i in zebra $quagga_protocols; do
if [ ".$i" = .zebra ]; then
midfix=""
daemon="${i}";
else
midfix="${i}_";
daemon="${i}d";
fi
if [ -x @l_prefix@/sbin/${daemon} ]; then
flags=`eval echo \\\$quagga_${midfix}flags`;
extra=`eval echo \\\$quagga_${midfix}bind`;
echo $flags | grep -- -A >/dev/null
if [ $? -ne 0 -a ".$extra" != . ]; then
flags="$flags -A $extra"
fi
extra=`eval echo \\\$quagga_${midfix}port`;
echo $flags | grep -- -P >/dev/null
if [ $? -ne 0 -a ".$extra" != . ]; then
flags="$flags -P $extra"
fi
@l_prefix@/sbin/${daemon} -d ${flags}
fi
done
@l_prefix@/bin/vtysh -b
%stop -u @l_susr@
rcService quagga enable yes || exit 0
rcService quagga active no && exit 0
if [ -f @l_prefix@/var/quagga/zebra.pid ]; then
kill -TERM `cat @l_prefix@/var/quagga/zebra.pid` >/dev/null 2>&1 || true
fi
for protocol in $quagga_protocols; do
if [ -f @l_prefix@/var/quagga/${protocol}d.pid ]; then
kill -TERM `cat @l_prefix@/var/quagga/${protocol}d.pid` >/dev/null 2>&1 || true
fi
done
sleep 1
rm -f @l_prefix@/var/quagga/*.pid >/dev/null 2>&1 || true
%restart -u @l_susr@
rcService quagga enable yes || exit 0
rcService quagga active no && exit 0
rc quagga stop start
%daily -u @l_susr@
rcService quagga enable yes || exit 0
shtool rotate -f \
-n ${quagga_log_numfiles} -s ${quagga_log_minsize} -d \
-z ${quagga_log_complevel} -m 640 -o @l_susr@ -g @l_mgrp@ \
-P "${quagga_log_prolog}" \
-E "${quagga_log_epilog}; rc quagga restart" \
@l_prefix@/var/quagga/zebra.log