web-dev-qa-db-fra.com

vérifie constamment si la virtualbox est démarrée ou continue de démarrer à partir d'un script

J'écris un script Shell pour démarrer une virtualbox (Ubuntu). Après la commande, je veux mettre une boucle for pour continuer à vérifier l'état de virtualbox et le script ne sort de la boucle qu'après le démarrage complet de l'ubuntu. Quelque chose comme

vboxmanage starvm Ubuntu

for (i= 0; i < 100; i++)
{
continue if (vbox is not on)
}

quitter lorsque vbox est complètement allumé et exécuter la commande suivante

2
Mian Asbat Ahmad

Nous pouvons utiliser VBoxManage pour interroger l'état d'une machine virtuelle. La commande suivante répertorie toutes les machines virtuelles en cours d'exécution sur votre système:

VBoxManage list runningvms

La sortie vous montrera les informations suivantes que vous pourrez ensuite analyser dans votre script:

"name_of_machine" <UUID>

Bien entendu, cela ne vous dira pas si le système d'exploitation invité a démarré correctement ou s'il est prêt à être utilisé. Pour de telles informations, vous devrez peut-être exécuter un script sur l'invité commençant après le démarrage pour envoyer son état d'exécution à l'hôte.

7
Takkat

Je sais qu'il est un peu tard pour répondre à cette question. mais cela pourrait aider les autres. vous pouvez exécuter la commande suivante pour obtenir l'état de votre machine virtuelle

VBoxManage list vms -l | grep -e Name: -e State

il vous indiquera toutes les machines virtuelles ainsi que leur statut. exécutez cette commande dans votre boucle, vérifiez l'état de chaque machine.

if( stopped || paused ) 
VBoxManage startvm VMNAME           //here VMNAME is variable containing name of your vm
else
//do nothing

faites-le pour tous vos vms. j'espère que ça aide

0
Bilal