diff --git a/debianpkg/frr.logrotate b/debianpkg/frr.logrotate index 2b4acd89c7a6..750b9aef1386 100644 --- a/debianpkg/frr.logrotate +++ b/debianpkg/frr.logrotate @@ -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 diff --git a/redhat/daemons b/redhat/daemons index 1dd7c95d23b1..d5f1d5640f37 100644 --- a/redhat/daemons +++ b/redhat/daemons @@ -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 diff --git a/redhat/frr.init b/redhat/frr.init index 19b282fe1a52..740aa5b64dfb 100755 --- a/redhat/frr.init +++ b/redhat/frr.init @@ -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 diff --git a/redhat/frr.spec.in b/redhat/frr.spec.in index f83c08e611c1..9a05e9b93549 100644 --- a/redhat/frr.spec.in +++ b/redhat/frr.spec.in @@ -87,7 +87,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 @@ -408,6 +408,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" diff --git a/tools/etc/frr/daemons.conf b/tools/etc/frr/daemons.conf index e6c0cde9686b..04a857f47d26 100644 --- a/tools/etc/frr/daemons.conf +++ b/tools/etc/frr/daemons.conf @@ -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 diff --git a/tools/frr b/tools/frr index 27136bb76213..f4dd0bb4be55 100755 --- a/tools/frr +++ b/tools/frr @@ -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 }