|
|
@@ -74,6 +74,7 @@ ready() {
|
|
|
finish() {
|
|
|
|
|
|
local pid
|
|
|
+ local cnt=0
|
|
|
local reason=$1
|
|
|
|
|
|
touch "$QEMU_END"
|
|
|
@@ -85,10 +86,20 @@ finish() {
|
|
|
{ kill -15 "$pid" || true; } 2>/dev/null
|
|
|
|
|
|
while isAlive "$pid"; do
|
|
|
+
|
|
|
sleep 1
|
|
|
+ cnt=$((cnt+1))
|
|
|
+
|
|
|
# Workaround for zombie pid
|
|
|
[ ! -s "$QEMU_PID" ] && break
|
|
|
+
|
|
|
+ if [ "$cnt" == "5" ]; then
|
|
|
+ error "QEMU did not terminate itself, forcefully killing process..."
|
|
|
+ { kill -9 "$pid" || true; } 2>/dev/null
|
|
|
+ fi
|
|
|
+
|
|
|
done
|
|
|
+
|
|
|
fi
|
|
|
|
|
|
if [ ! -f "$STORAGE/windows.boot" ] && [ -f "$BOOT" ]; then
|