|
|
|
|
#!@l_prefix@/lib/openpkg/bash @l_prefix@/etc/rc
|
|
|
|
|
##
|
|
|
|
|
## rc.zebra -- Run-Commands
|
|
|
|
|
##
|
|
|
|
|
|
|
|
|
|
%config
|
|
|
|
|
zebra_enable="$openpkg_rc_def"
|
|
|
|
|
zebra_protocols="rip ospf bgp"
|
|
|
|
|
zebra_flags=""
|
|
|
|
|
zebra_bind="127.0.0.1"
|
|
|
|
|
zebra_port="2601"
|
|
|
|
|
zebra_log_prolog="true"
|
|
|
|
|
zebra_log_epilog="true"
|
|
|
|
|
zebra_log_numfiles="10"
|
|
|
|
|
zebra_log_minsize="1M"
|
|
|
|
|
zebra_log_complevel="9"
|
|
|
|
|
|
|
|
|
|
%status -u @l_susr@ -o
|
|
|
|
|
zebra_usable="unknown"
|
|
|
|
|
zebra_active="no"
|
|
|
|
|
if [ -f @l_prefix@/var/zebra/zebra.pid ]; then
|
|
|
|
|
kill -0 `cat @l_prefix@/var/zebra/zebra.pid` >/dev/null 2>&1 || true
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
zebra_active="yes"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
echo "zebra_enable=\"$zebra_enable\""
|
|
|
|
|
echo "zebra_usable=\"$zebra_usable\""
|
|
|
|
|
echo "zebra_active=\"$zebra_active\""
|
|
|
|
|
|
|
|
|
|
%start -u @l_susr@
|
|
|
|
|
rcService zebra enable yes || exit 0
|
|
|
|
|
rcService zebra active yes && exit 0
|
|
|
|
|
flags="$zebra_flags"
|
|
|
|
|
echo $flags | grep -- -A >/dev/null
|
|
|
|
|
if [ $? -ne 0 -a ".$zebra_bind" != . ]; then
|
|
|
|
|
flags="$flags -A $zebra_bind"
|
|
|
|
|
fi
|
|
|
|
|
echo $flags | grep -- -P >/dev/null
|
|
|
|
|
if [ $? -ne 0 -a ".$zebra_port" != . ]; then
|
|
|
|
|
flags="$flags -P $zebra_port"
|
|
|
|
|
fi
|
|
|
|
|
cd @l_prefix@/etc/zebra
|
|
|
|
|
@l_prefix@/sbin/zebra -d $flags
|
|
|
|
|
for protocol in $zebra_protocols; do
|
|
|
|
|
if [ -f @l_prefix@/sbin/${protocol}d ]; then
|
|
|
|
|
@l_prefix@/sbin/${protocol}d -d
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
@l_prefix@/bin/vtysh -b
|
|
|
|
|
|
|
|
|
|
%stop -u @l_susr@
|
|
|
|
|
rcService zebra enable yes || exit 0
|
|
|
|
|
rcService zebra active no && exit 0
|
|
|
|
|
if [ -f @l_prefix@/var/zebra/zebra.pid ]; then
|
|
|
|
|
kill -TERM `cat @l_prefix@/var/zebra/zebra.pid` >/dev/null 2>&1 || true
|
|
|
|
|
fi
|
|
|
|
|
for protocol in $zebra_protocols; do
|
|
|
|
|
if [ -f @l_prefix@/var/zebra/${protocol}d.pid ]; then
|
|
|
|
|
kill -TERM `cat @l_prefix@/var/zebra/${protocol}d.pid` >/dev/null 2>&1 || true
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
sleep 1
|
|
|
|
|
rm -f @l_prefix@/var/zebra/*.pid >/dev/null 2>&1 || true
|
|
|
|
|
|
|
|
|
|
%restart -u @l_susr@
|
|
|
|
|
rcService zebra enable yes || exit 0
|
|
|
|
|
rcService zebra active no && exit 0
|
|
|
|
|
rc zebra stop start
|
|
|
|
|
|
|
|
|
|
%daily -u @l_susr@
|
|
|
|
|
rcService zebra enable yes || exit 0
|
|
|
|
|
|
|
|
|
|
# rotate logfile
|
|
|
|
|
shtool rotate -f \
|
|
|
|
|
-n ${zebra_log_numfiles} -s ${zebra_log_minsize} -d \
|
|
|
|
|
-z ${zebra_log_complevel} -m 644 -o @l_susr@ -g @l_mgrp@ \
|
|
|
|
|
-P "${zebra_log_prolog}" \
|
|
|
|
|
-E "${zebra_log_epilog} && rc zebra restart" \
|
|
|
|
|
@l_prefix@/var/zebra/zebra.log
|
|
|
|
|
|