¿Cómo puedo saber desde la línea de comandos si una máquina virtual específica está en funcionamiento desde la línea de comandos?
virtualbox
BenAlabastro
fuente
fuente
vboxmanage list runningvms
Respuestas:
Dos no (¿ya?) Dice si la vm se está ejecutando o no. También enumera los que no se ejecutan.
Will devuelve 1 si se está ejecutando, o 0 si no.
fuente
if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
vboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
vboxmanage list runningvms
Si desea una lista de todas las máquinas virtuales para ver si se están ejecutando o no, use este comando:
Esto mostrará el nombre de la máquina virtual en una línea y su estado en la siguiente línea, como en
fuente
... | grep -v -e 'Host path:'
Este comando genera la lista de vms en ejecución (probado en Virtualbox 5.1)
Para saber si se está ejecutando un vm, este comando debe hacer el trabajo (devolver 1 si se está ejecutando, 0 de lo contrario):
fuente
Creo que puede obtener esta información utilizando VBoxManage (interfaz de línea de comandos para VirtualBox).
Puede usar el comando showvminfo para mostrar información sobre una máquina virtual en particular.
fuente
La combinación
VBoxManage list runningvms
congrep
solo sin nada más no solo dará una salida de consola, sino que también proporcionará el código de retorno requerido para las necesidades de scripting de shell. Elgrep
comando requerirá la comilla doble exacta para la VM en el caso de que se proporcione un nombre de VM: ejemplo:Para uno corriendo
En la otra respuesta, donde
sed
se utilizó para eliminar las comillas dobles, o si el grep se realizó sin las comillas dobles, se devolverán falsos positivos. Demostración:fuente
Además, vea este documento.
fuente