J'ai Ubuntu 10.10 et j'utilise VirtualBox 3.2. En tant qu'OS invité, j'ai un autre Ubuntu dans la VirtualBox.
Je lance Guest Ubuntu automatiquement en utilisant la commande suivante une fois que mon hôte Ubuntu a démarré:
VBoxHeadless -startvm Ubuntu --vrdp on
Ensuite, je peux y accéder avec ssh ou tsclient.
Maintenant, j'ai besoin d'arrêter automatiquement Guest Ubuntu une fois que j'ai arrêté mon hôte Ubuntu. Est-ce que quelqu'un connaît une méthode sûre pour arrêter automatiquement Guest Ubuntu avec une ligne de commande? J'ai découvert deux façons d'arrêter le système d'exploitation invité, mais je ne sais pas s'il est sécurisé ou non. Les voici:
VBoxManage controlvm Ubuntu acpipowerbutton
ou
VBoxManage controlvm Ubuntu poweroff
Si vous ouvrez les préférences de gestion de Gnome Power, vous pouvez définir les actions à exécuter lorsque vous appuyez sur le bouton d'alimentation. Si vous le configurez pour qu'il s'éteigne, il se fermera normalement lorsque vous appuierez sur le bouton d'alimentation virtuel à l'aide de la commande VBoxManage controlvm Ubuntu acpipowerbutton
.
Pour arrêter en toute sécurité vm, utilisez cette commande:
vboxmanage controlvm Ubuntu poweroff soft
Si vous arrêtez la machine virtuelle lorsque le serveur le fait, vous devez attendre la ou les machines virtuelles.
(Dans ce shellscript, 'root' est l'invocateur et 'l'utilisateur' est le propriétaire de 'thevm')
Je sais que les vms ont fini lorsque la sortie de la commande VBoxManage list runningvms
renvoie une chaîne vide.
J'utilise ceci dans mon script Shell
...
stop(){
su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
do
echo waiting for VMs to shutdown
sleep 3
done
}
...
Ne fais pas ça:
VBoxManage controlvm Ubuntu poweroff
Cela équivaut à débrancher le cordon d’alimentation d’un ordinateur réel. Tu ne veux pas faire ça!
Utilisez la méthode d’arrêt ACPI (vérifiez le paramètre de gestion de l’énergie comme suggéré par Egil) ou essayez éventuellement la méthode d’état de sauvegarde (savestate
).
Vous devez éteindre votre Ubuntu virtuel comme vous éteignez votre vrai matériel. À partir d'un commanline sur une session ssh à distance, émettez:
Sudo poweroff
Si vous souhaitez enregistrer l'état de la machine (similaire à suspendre/hiberner), utilisez le deuxième point dans réponse de @ htorque .