base-files: upgrade: don't loop forever trying to kill processes
[openwrt/openwrt.git] / package / base-files / files / lib / upgrade / stage2
index 5a439f1201b1dc452493a7ce6129d41aa206b072..d7f92a4f3506d0a26d7178320eaba5149d177617 100755 (executable)
@@ -78,6 +78,8 @@ switch_to_ramfs() {
 }
 
 kill_remaining() { # [ <signal> [ <loop> ] ]
+       local loop_limit=10
+
        local sig="${1:-TERM}"
        local loop="${2:-0}"
        local run=true
@@ -108,8 +110,15 @@ kill_remaining() { # [ <signal> [ <loop> ] ]
 
                        [ $loop -eq 1 ] && run=true
                done
+
+               let loop_limit--
+               [ $loop_limit -eq 0 ] && {
+                       echo
+                       echo "Failed to kill all processes."
+                       exit 1
+               }
        done
-       echo ""
+       echo
 }