Virtualbox имеет возможность выдать команду работающему vm:
vboxmanage controlvm NameOfRunningVM acpipowerbutton
Однако эта команда немедленно возвращается, что приводит к неосторожному отключению в моей ситуации.
Ситуация: я планирую использовать это в скрипте /etc/init.d. Это позволило бы корректно завершить работу всех работающих виртуальных машин. В настоящее время, когда я vboxmanage controlvm NameOfRunningVM acpipowerbutton
отключение завершается, потому что команда не ожидает завершения работы виртуальной машины.
Мне нужен сценарий Bash, который принимает в качестве входных данных имя компьютера Virtualbox и время ожидания в секундах, а затем ожидает, когда виртуальная машина вернется в состояние "выключения", или время ожидания истекло?
Я не уверен, что это лучший способ сделать это.
Я думал о проверке состояния виртуальной машины с помощью следующей команды:
[user@machine ~]$ vboxmanage list runningvms
"VirtualMachineName" {65c93f1f-4508-4119-b07d-ce9e89b23b8e}
Сценарий bash, возможно, будет опрашивать список работающих виртуальных машин. Как только имя машины перестанет быть в списке, виртуальная машина будет считаться завершенной.