如何从命令行判断虚拟机是否已启动?

Ben*_*ter 32 virtualbox

如何从命令行判断特定虚拟机是否已启动并从命令行运行?

小智 24

vboxmanage list vms
Run Code Online (Sandbox Code Playgroud)

不要(不再?)告诉 vm 是否正在运行。它也列出了没有运行的。

vboxmanage showvminfo "your_vm_name" | grep -c "running (since"
Run Code Online (Sandbox Code Playgroud)

如果正在运行,则返回 1,否则返回 0。

  • `vboxmanage list runningvms` (5认同)
  • 另外,`如果!VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; 然后……` (2认同)

小智 16

如果您想查看所有 VM 的列表以查看它们是否正在运行,请使用以下命令:

vboxmanage list vms --long | grep -e "Name:" -e "State:"
Run Code Online (Sandbox Code Playgroud)

这将在一行中显示 VM 名称,在下一行中显示其状态,例如

Name:            windows10pro
State:           running (since 2017-06-09T09:16:46.593000000)
Name:            ubuntu16LTS
State:           powered off (since 2017-02-09T19:11:33.000000000)
Name:            zammad
State:           running (since 2017-06-09T09:08:13.871000000)
Run Code Online (Sandbox Code Playgroud)


小智 11

此命令输出正在运行的虚拟机列表(在 Virtualbox 5.1 上测试)

VBoxManage list runningvms
Run Code Online (Sandbox Code Playgroud)

要知道 vm 是否正在运行,此命令应该完成这项工作(如果正在运行,则返回 1,否则返回 0):

VBoxManage list runningvms | sed -r 's/^"(.*)".*$/\1/' | grep 'VM Name' | wc -l
Run Code Online (Sandbox Code Playgroud)