]> git.puffer.fish Git - mirror/frr.git/commitdiff
tools: make --quiet actually suppress output 14433/head
authorJonas Gorski <jonas.gorski@bisdn.de>
Thu, 14 Sep 2023 15:04:16 +0000 (17:04 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Mon, 18 Sep 2023 08:06:48 +0000 (08:06 +0000)
When calling daemon_stop() with --quiet and e.g. the pidfile is empty,
it won't return early since while "$fail" is set, "$2" is "--quiet", so
the if condition isn't met and it will continue executing, resulting
in error messages in the log:

> Sep 14 14:48:33 localhost watchfrr[2085]: [YFT0P-5Q5YX] Forked background command [pid 2086]: /usr/lib/frr/watchfrr.sh restart all
> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec
> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec
> Sep 14 14:48:33 localhost frrinit.sh[2075]: /usr/lib/frr/frrcommon.sh: line 216: kill: `': not a pid or valid job spec

Fix this by moving the --quiet check into the block to log_failure_msg(),
and also add the check to all other invocations of log_*_msg() to make
--quiet properly suppress output.

Fixes: 19a99d89f088 ("tools: suppress unuseful warnings during restarting frr")
Signed-off-by: Jonas Gorski <jonas.gorski@bisdn.de>
(cherry picked from commit 312d5ee1592f8c5b616d330233d1de2643f759e2)

tools/frrcommon.sh.in

index b96ecd0f068ccb1029388dc403f29e03f6b54ad0..6cdcc8fea5bff31900a5108fe43d659b41f91e9f 100755 (executable)
@@ -207,8 +207,8 @@ daemon_stop() {
        [ -z "$fail" -a -z "$pid" ] && fail="pid file is empty"
        [ -n "$fail" ] || kill -0 "$pid" 2>/dev/null || fail="pid $pid not running"
 
-       if [ -n "$fail" ] && [ "$2" != "--quiet" ]; then
-               log_failure_msg "Cannot stop $dmninst: $fail"
+       if [ -n "$fail" ]; then
+               [ "$2" = "--quiet" ] || log_failure_msg "Cannot stop $dmninst: $fail"
                return 1
        fi
 
@@ -220,11 +220,11 @@ daemon_stop() {
                [ $(( cnt -= 1 )) -gt 0 ] || break
        done
        if kill -0 "$pid" 2>/dev/null; then
-               log_failure_msg "Failed to stop $dmninst, pid $pid still running"
+               [ "$2" = "--quiet" ] || log_failure_msg "Failed to stop $dmninst, pid $pid still running"
                still_running=1
                return 1
        else
-               log_success_msg "Stopped $dmninst"
+               [ "$2" = "--quiet" ] || log_success_msg "Stopped $dmninst"
                rm -f "$pidfile"
                return 0
        fi