frr includes watchfrr, a component to watch the frr daemons and restart them if crashed.
watchfrr will try to restart a single daemon by issuing "service frr onerestart ospfd", for example, which works fine. However, if multiple daemons have crashed, it will issue "service frr onerestart all" and this fails.
The frr startup script at /usr/local/etc/rc.d/frr does not handle "all" properly (or actually at all).
This is easily remedied. A stanza exists around line 136 to select the frr_daemons to restart if arguments have been provided.
if [ $# -ge 1 ]; then
can be changed to
if [ $# -ge 1 -a "$1" != "all" ]; then
A commit references this bug:
Date: Sun Apr 12 16:01:00 UTC 2020
New revision: 531526
Add 'service frr onerestart all' usage.
Submitted by: Joe Greco <firstname.lastname@example.org>
Thanks for your patch.