vboxmanage list vms
Dos not (anymore?) informa se o vm está rodando ou não. Listar também não está em execução.
vboxmanage showvminfo "your_vm_name" | grep -c "running (since"
Retorna 1 se estiver em execução ou 0 se não estiver.
Como posso saber a partir da linha de comando se uma máquina virtual específica está funcionando a partir da linha de comando?
Se você quiser uma lista de todas as VMs para ver se elas estão sendo executadas ou não, use este comando:
vboxmanage list vms --long | grep -e "Name:" -e "State:"
Isso mostrará o nome das VMs em uma linha e seu status na seguinte linha, como em
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)
Este comando gera a lista de execução de vms (testado no VirtualBox 5.1)
VBoxManage list runningvms
Para saber se um vm está em execução, este comando deve executar o trabalho (retorne 1 se estiver em execução, 0 caso contrário):
VBoxManage list runningvms | sed -r 's/^"(.*)".*$//' | grep 'VM Name' | wc -l
Eu acredito que você pode obter essa informação usando VBoxManage (interface de linha de comando para o VirtualBox).
Você pode usar o comando showvminfo para exibir informações sobre uma determinada máquina virtual.
This is the same information as VBoxManage list vms would show for all virtual machines.
Combinando VBoxManage list runningvms
com grep
sozinho sem qualquer outra coisa não apenas fornecerá uma saída do console, mas também fornecerá o código de retorno necessário para as necessidades de script de shell. O comando grep
exigirá as aspas duplas exatas para a VM no caso de um nome vm ser fornecido: example:
$ VBoxManage list runningvms |grep '"demo_vm"'
$ echo $?
1
Para um em execução
$ VBoxManage list runningvms |grep '"demo_vm_on"'
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0
Na outra resposta, em que sed
foi usado para eliminar as aspas duplas, ou se o grep foi feito sem as aspas duplas, os falsos positivos serão retornados. Demonstração:
$ VBoxManage list runningvms |grep demo_vm
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0
root@yourshell#vboxmanage list vms
Além disso, consulte este documento.
Tags virtualbox