Como posso saber se uma máquina virtual está ativa na linha de comando?

17

Como posso saber a partir da linha de comando se uma máquina virtual específica está funcionando a partir da linha de comando?

    
por BenAlabaster 20.07.2013 / 04:19

6 respostas

11
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.

    
por 29.06.2015 / 09:56
6

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)
    
por 09.06.2017 / 11:26
3

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
    
por 07.11.2016 / 11:10
1

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.

    
por 20.07.2013 / 05:09
1

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
    
por 26.01.2018 / 06:50
0

root@yourshell#vboxmanage list vms

Além disso, consulte este documento.

    
por 20.07.2013 / 05:09

Tags