debianpkg, redhat, tools: Fixup startup/build for new daemon

Add code to allow FRR to properly build and handle the staticd
for some of the more common packaging.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2018-04-25 20:48:17 -04:00
parent 7e24fdf333
commit 7ac1de8ee0
6 changed files with 30 additions and 4 deletions

View File

@ -17,7 +17,7 @@
# open, as well as the daemons, so always signal the daemons.
# It's safe, a NOP if (only) syslog is being used.
for i in babeld bgpd eigrpd isisd ldpd nhrpd ospf6d ospfd \
pimd ripd ripngd zebra ; do
pimd ripd ripngd zebra staticd ; do
if [ -e /var/run/frr/$i.pid ] ; then
pids="$pids $(cat /var/run/frr/$i.pid)"
fi

View File

@ -51,6 +51,7 @@ eigrpd=no
babeld=no
sharpd=no
pbrd=no
staticd=no
#
# Command line options for the daemons
#
@ -68,6 +69,7 @@ eigrpd_options=("-A 127.0.0.1")
babeld_options=("-A 127.0.0.1")
sharpd_options=("-A 127.0.0.1")
pbrd_options=("-A 127.0.0.1")
staticd_options=("-A 127.0.0.1")
#
# If the vtysh_enable is yes, then the unified config is read

View File

@ -33,7 +33,7 @@ V_PATH=/var/run/frr
# Local Daemon selection may be done by using /etc/frr/daemons.
# See /usr/share/doc/frr/README.Debian.gz for further information.
# Keep zebra first and do not list watchfrr!
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd pimd pbrd ldpd nhrpd eigrpd babeld"
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd pimd pbrd ldpd nhrpd eigrpd babeld staticd sharpd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py

View File

@ -85,7 +85,7 @@
%{!?frr_gid: %global frr_gid 92 }
%{!?vty_gid: %global vty_gid 85 }
%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd
%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d pbrd staticd
%if %{with_ldpd}
%define daemon_ldpd ldpd
@ -416,6 +416,7 @@ zebra_spec_add_service ()
zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
zebra_spec_add_service zebra 2601/tcp "zebra vty"
zebra_spec_add_service staticd 2616/tcp "staticd vty"
zebra_spec_add_service ripd 2602/tcp "RIPd vty"
zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
@ -561,6 +562,7 @@ fi
%{_infodir}/frr.info.gz
%{_mandir}/man*/*
%{_sbindir}/zebra
%{_sbindir}/staticd
%{_sbindir}/ospfd
%{_sbindir}/ripd
%{_sbindir}/bgpd

View File

@ -18,6 +18,7 @@ eigrpd_options=" --daemon -A 127.0.0.1"
babeld_options=" --daemon -A 127.0.0.1"
sharpd_options=" --daemon -A 127.0.0.1"
pbrd_options=" --daemon -A 127.0.0.1"
staticd_options=" --daemon -A 127.0.0.1"
# The list of daemons to watch is automatically generated by the init script.
watchfrr_enable=yes

View File

@ -21,7 +21,7 @@ V_PATH=/var/run/frr
# Local Daemon selection may be done by using /etc/frr/daemons.
# See /usr/share/doc/frr/README.Debian.gz for further information.
# Keep zebra first and do not list watchfrr!
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd"
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd"
MAX_INSTANCES=5
RELOAD_SCRIPT=/usr/lib/frr/frr-reload.py
@ -170,6 +170,22 @@ start()
`eval echo "$""$1""_options"`
fi
fi
# Start the staticd automatically
if [ "$1" = "zebra" ]; then
echo -n "starting staticd since zebra is running"
if ! check_daemon staticd ; then
echo -n " (binary does not exist)"
return;
fi
${SSD} \
--start \
--pidfile=`pidfile staticd` \
--exec "$D_PATH/staticd" \
-- \
`eval echo "$"staticd"_options"`
fi
}
# Stop the daemon given in the parameter, printing its name to the terminal.
@ -210,6 +226,11 @@ stop()
echo -n " $inst"
rm -f `pidfile $inst`
rm -f `vtyfile $inst`
if [ "$1" = "zebra" ]; then
echo -n "Stopping staticd since zebra is running"
stop staticd
fi
fi
}