Como posso saber na linha de comando se uma máquina virtual específica está ativa e em execução na linha de comando?
virtualbox
BenAlabaster
fonte
fonte
vboxmanage list runningvms
Respostas:
O Dos not (anymore?) Informa se o vm está rodando ou não. Ele também lista os que não estão em execução.
Will retorna 1 se estiver em execução ou 0 se não.
fonte
if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
vboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
vboxmanage list runningvms
Se você deseja que uma lista de todas as VMs veja se elas estão em execução ou não, use este comando:
Isso mostrará o nome das VMs em uma linha e seu status na linha a seguir, como em
fonte
... | grep -v -e 'Host path:'
Este comando gera a lista de vms em execução (testado no Virtualbox 5.1)
Para saber se uma vm está em execução, este comando deve fazer o trabalho (retorne 1 se estiver executando, 0 caso contrário):
fonte
Eu acredito que você pode obter essas informações usando o VBoxManage (interface de linha de comando para o VirtualBox).
Você pode usar o comando showvminfo para mostrar informações sobre uma máquina virtual específica.
fonte
Combinando
VBoxManage list runningvms
comgrep
sozinho , sem qualquer outra coisa, não só dar uma saída de console, mas também irá fornecer o código de retorno exigida para as necessidades de scripts shell. Ogrep
comando exigirá as aspas duplas exatas para a VM no caso em que um nome de vm é fornecido: exemplo:Para um correndo
Na outra resposta, onde
sed
foi usado para eliminar as aspas duplas, ou se o grep foi feito sem as aspas duplas, retornos falsos positivos. Demonstração:fonte
Além disso, consulte este documento.
fonte