summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/frrcommon.sh.in6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/frrcommon.sh.in b/tools/frrcommon.sh.in
index 4683ceef14..8ae81bc64c 100644
--- a/tools/frrcommon.sh.in
+++ b/tools/frrcommon.sh.in
@@ -194,10 +194,14 @@ daemon_stop() {
is_user_root || exit 1
+ all=false
+ [ "$1" = "--all" ] && { all=true; shift; }
+
pidfile="$V_PATH/$daemon${inst:+-$inst}.pid"
vtyfile="$V_PATH/$daemon${inst:+-$inst}.vty"
[ -r "$pidfile" ] || fail="pid file not found"
+ $all && [ -n "$fail" ] && return 0
[ -z "$fail" ] && pid="`cat \"$pidfile\"`"
[ -z "$fail" -a -z "$pid" ] && fail="pid file is empty"
[ -n "$fail" ] || kill -0 "$pid" 2>/dev/null || fail="pid $pid not running"
@@ -273,7 +277,7 @@ all_stop() {
done
for dmninst in $reversed; do
- daemon_stop "$dmninst" "$1" &
+ daemon_stop --all "$dmninst" "$1" &
pids="$pids $!"
done
for pid in $pids; do