Supprimer complètement les boîtes Vagrant VirtualBox de la ligne de commande

Chaque fois qu’une boîte Vagrant ne parvient pas à s’installer, elle laisse un peu de mal dans VirtualBox . Les ports Vagrantfile configurés dans le Vagrantfile ne sont pas nettoyés . vagrant halt ne fonctionne pas parce que la boîte n’est pas en place et que les vagrant destroy parfois le travail, en fonction de la distance parcourue par l’installation d’une boîte avant de la suspendre.

Donc, chaque fois que je teste une nouvelle configuration, vagrant dit que le port à transférer est déjà utilisé. Je dois changer le port pour avancer, puis l’installation continue, pour ne plus être que plus tard et prendre le port en otage. Maintenant, je ne dispose pas de ports que je puisse utiliser (accessibles à distance), alors je veux juste cesser d’avoir ces ports constipés.

Je pourrais probablement résoudre ce problème avec un redémarrage, mais la machine ne peut pas être redémarrée maintenant.

L’émission de la commande “juste supprimer la foutue chose” ne fonctionne pas:

$ VBoxManage list vms
“” {aaaa-aa-aa-aa-aaaa}
“” {bbbb-bb-bb-bb-bbbb}
“vagrant_default_cccc_cc” {cccc-cc-cc-cc-cccc}
$ VBoxManage unregistervm aaaa-aa-aa-aa-aaaa –delete
VBoxManage: erreur: l’object n’est pas prêt
VBoxManage: erreur: Détails: code E_ACCESSDENIED (0x80070005), composant Machine, interface IMachine, appelé nsISupports
VBoxManage: error: Context: “Supprimer (ComSafeArrayAsInParam (aMedia), pProgress.asOutParam ())” à la ligne 165 du fichier VBoxManageMisc.cpp
$ VBoxManage unregistervm bbbb-bb-bb-bb-bbbb –delete
VBoxManage: erreur: l’object n’est pas prêt
VBoxManage: erreur: Détails: code E_ACCESSDENIED (0x80070005), composant Machine, interface IMachine, appelé nsISupports
VBoxManage: error: Context: “Supprimer (ComSafeArrayAsInParam (aMedia), pProgress.asOutParam ())” à la ligne 165 du fichier VBoxManageMisc.cpp
$ VBoxManage unregistervm cccc-cc-cc-cc-cccc –delete
VBoxManage: error: Impossible d’annuler l’enregistrement de la machine ‘vagrant_default_cccc_cc’ alors qu’elle est verrouillée VBoxManage: error: Détails: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), composant Machine, interface IMachine, appelé nsISupports
VBoxManage: error: Context: “Annuler l’inscription (fDelete? (CleanupMode_T) CleanupMode_DetachAllReturnHardDisksOnly: (CleanupMode_T) CleanupMode_DetachAllReturnNone, ComSafeArrayAsOutParam (aMedia))” à la ligne 160 du fichier VBoxManageMisc.cpp
$

(Non, sudo ne fait pas le tour non plus.)

Comment puis-je éliminer et détruire les machines aussi facilement que possible sans avoir à redémarrer? Ou, au moins (ou mieux), VirtualBox de garder le port en avant sur les boîtes cassées? Je ne devrais probablement pas supprimer et -rf juste parce qu’il y a aussi des boîtes qui fonctionnent bien.

Le serveur exécutant Vagrant et VirtualBox s’exécute sur Ubuntu 13.10 . L’invité, bien que probablement sans importance, tente d’exécuter Ubuntu 12.10 .

 $ ps axu|grep VBoxHeadless jamie 4205 0.3 1.2 1592676 208592 ? Sl Apr10 7:08 /usr/lib/virtualbox/VBoxHeadless --comment apt-cacher_default_1396256757 --startvm a8c2157a-f86f-491d-a703-74e49b4348fb --vrde config jamie 11390 48.7 1.4 2823080 231788 ? Sl Apr10 845:49 /usr/lib/virtualbox/VBoxHeadless --comment vandeliverytest_default_1397122355 --startvm a06a0a8c-a645-4270-89f4-992566e111f0 --vrde config jamie 22226 0.0 0.0 13596 936 pts/3 S+ 16:31 0:00 grep --color=auto VBoxHeadless 

Les commandes “startvm” sont les processus qui traînent et ne peuvent pas être arrêtés avec les commandes normales de vagrant. émettre une commande kill -TERM aux processus et ils doivent s’arrêter si cela ne fonctionne pas, passer à un kill -KILL