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
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 |
|
|
|
|