Я пишу сценарий оболочки для запуска virtualbox (Ubuntu). После команды я хочу поставить цикл for для проверки состояния виртуального ящика, и сценарий выходит из цикла только после полного запуска ubuntu. Что-то вроде
vboxmanage starvm Ubuntu
for (i= 0; i < 100; i++)
{
continue if (vbox is not on)
}
завершает работу, когда vbox полностью включен, и выполняет следующую команду
Мы можем использовать VBoxManage для запроса состояния виртуальной машины. Следующая команда выведет список всех запущенных виртуальных машин в вашей системе:
VBoxManage list runningvms
Вывод покажет вам следующую информацию, которую вы затем сможете проанализировать в своем скрипте:
"name_of_machine" <UUID>
This конечно, не скажет вам, правильно ли загружена гостевая ОС или она готова к использованию. Для получения такой информации вам может потребоваться запустить скрипт на гостевой системе, начиная с начальной загрузки, чтобы отправить его состояние выполнения хосту.
Я знаю, что уже поздно отвечать на этот вопрос. но это может помочь другим. Вы можете выполнить следующую команду, чтобы узнать состояние вашей виртуальной машины
VBoxManage list vms -l | grep -e Name: -e State
, она сообщит вам все виртуальные машины вместе с их статусом. Запустите эту команду в своем цикле, проверьте состояние каждого компьютера.
if( stopped || paused )
VBoxManage startvm VMNAME //here VMNAME is variable containing name of your vm
else
//do nothing
сделать это для всех ваших VMS. я надеюсь, что это поможет