diff options
Diffstat (limited to 'emulators/virtualbox-ose/files/vboxheadless.in')
-rw-r--r-- | emulators/virtualbox-ose/files/vboxheadless.in | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/emulators/virtualbox-ose/files/vboxheadless.in b/emulators/virtualbox-ose/files/vboxheadless.in index 6d01a50f7db2..442a8be7a040 100644 --- a/emulators/virtualbox-ose/files/vboxheadless.in +++ b/emulators/virtualbox-ose/files/vboxheadless.in @@ -73,7 +73,7 @@ vboxheadless_start() vboxheadless_stop() { - local machine mpidfile pid vmname vmuser vmstop vmdelay + local machine mpidfile pid pids vmname vmuser vmstop vmdelay echo "Saving states for Virtual Machines:" for machine in ${vboxheadless_machines}; do @@ -87,14 +87,17 @@ vboxheadless_stop() /usr/bin/printf "%25s " "${vmname}" if [ -n "${pid}" ]; then + pids="${pids} ${pid}" /bin/sleep ${vmdelay} - /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage controlvm '${vmname}' ${vmstop} >/dev/null" 2>/dev/null - wait_for_pids $pid >/dev/null - echo "Stopped" - else - echo "Not running?" + /usr/bin/su ${vmuser} -c "%%VBOXDIR%%/VBoxManage controlvm '${vmname}' ${vmstop} >/dev/null &" 2>/dev/null fi done + if [ -n "${pids}" ]; then + wait_for_pids $pids >/dev/null + echo "Stopped" + else + echo "Not running?" + fi } vboxheadless_status() |