mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 13:37:17 +02:00
watchfrr: force kill daemons on restart
Today, watchfrr sends a SIGSTOP to a misbehaving daemon through frrcommon. The issue is, a stuck daemon (like in a thread starvation situation) will not honor a SIGSTOP, and watchfrr will try indefinitely to kill it. frrcommon will now send a SIGSTOP, and if ineffective after 60 seconds, it will send a SIGKILL. Signed-off-by: Tuetuopay <tuetuopay@me.com>
This commit is contained in:
parent
2a90c80f49
commit
7cf4d10423
|
@ -214,11 +214,17 @@ daemon_stop() {
|
|||
|
||||
debug "kill -2 $pid"
|
||||
kill -2 "$pid"
|
||||
cnt=1200
|
||||
cnt=600
|
||||
while kill -0 "$pid" 2>/dev/null; do
|
||||
sleep .1
|
||||
[ $(( cnt -= 1 )) -gt 0 ] || break
|
||||
done
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
[ "$2" = "--quiet" ] || log_failure_msg "Failed to stop $dmninst, sending SIGKILL"
|
||||
debug "kill -9 $pid"
|
||||
kill -9 "$pid"
|
||||
sleep .1
|
||||
fi
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
[ "$2" = "--quiet" ] || log_failure_msg "Failed to stop $dmninst, pid $pid still running"
|
||||
still_running=1
|
||||
|
|
Loading…
Reference in a new issue