我正在编写一个 shell 脚本来启动虚拟机(ubuntu)。在命令之后,我想放置一个 for 循环来继续检查虚拟机的状态,并且脚本仅在 ubuntu 完全启动后才退出循环。类似
vboxmanage starvm Ubuntu
for (i= 0; i < 100; i++)
{
continue if (vbox is not on)
}
当 vbox 完全打开时退出并执行下一个命令
答案1
我们可以用垂直框管理查询虚拟机的状态。以下命令将列出系统上所有正在运行的虚拟机:
VBoxManage list runningvms
输出将显示以下信息,然后您可以在脚本中进一步解析这些信息:
"name_of_machine" <UUID>
当然,这不会告诉您客户操作系统是否已正确启动或是否已准备好使用。要获取此类信息,您可能需要在客户机启动后运行脚本,以将其运行状态发送到主机。
答案2
我知道回答这个问题有点晚了。但它可能会对其他人有所帮助。您可以运行以下命令来获取虚拟机的状态
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
对所有虚拟机执行此操作。希望对您有所帮助