不断检查虚拟机是否已启动或仍在从脚本启动

不断检查虚拟机是否已启动或仍在从脚本启动

我正在编写一个 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

对所有虚拟机执行此操作。希望对您有所帮助

相关内容