base-files: upgrade: don't loop forever trying to kill processes
When processes don't die on SIGKILL (usually because of kernel bugs), it's better to give up instead of looping forever. upgraded will trigger a reboot in this case (and if this fails, a hardware watchdog will eventually time out and reset the system, if present). Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
This commit is contained in:
parent
ae30673b10
commit
1ab227d688
1 changed files with 10 additions and 1 deletions
|
@ -78,6 +78,8 @@ switch_to_ramfs() {
|
||||||
}
|
}
|
||||||
|
|
||||||
kill_remaining() { # [ <signal> [ <loop> ] ]
|
kill_remaining() { # [ <signal> [ <loop> ] ]
|
||||||
|
local loop_limit=10
|
||||||
|
|
||||||
local sig="${1:-TERM}"
|
local sig="${1:-TERM}"
|
||||||
local loop="${2:-0}"
|
local loop="${2:-0}"
|
||||||
local run=true
|
local run=true
|
||||||
|
@ -108,8 +110,15 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
|
||||||
|
|
||||||
[ $loop -eq 1 ] && run=true
|
[ $loop -eq 1 ] && run=true
|
||||||
done
|
done
|
||||||
|
|
||||||
|
let loop_limit--
|
||||||
|
[ $loop_limit -eq 0 ] && {
|
||||||
|
echo
|
||||||
|
echo "Failed to kill all processes."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
done
|
done
|
||||||
echo ""
|
echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue