Arrêter le serveur Ubuntu fonctionnant dans VirtualBox sans tête

16

J'utilise Ubuntu Server en utilisant VBoxHeadless. Comment envoyer un signal d'arrêt ACPI via VirtualBox et faire en sorte qu'Ubuntu Server le respecte et se conforme au signal d'arrêt?

Oxwivi
la source
Voulez-vous arrêter l'hôte de l'invité ou souhaitez-vous arrêter l'invité uniquement?
Takkat
@Takkat Guest uniquement.
Oxwivi

Réponses:

23

Si vous souhaitez arrêter Ubuntu invité, vous avez deux options:

Arrêter un invité à l'aide de VBoxManage

Une machine virtuelle peut être contrôlée par ligne de commande à l'aide de l' VBoxManageoutil de ligne de commande:

VBoxManage controlvm [nameofmachine] savestate       # saves the state of the VM like in suspend
VBoxManage controlvm [nameofmachine] poweroff        # simply "unplugs" the VM
VBoxManage controlvm [nameofmachine] acpipowerbutton # sends ACPI poweroff signal

Pour la mise hors tension par ACPI, le système d'exploitation virtuel doit être capable de le faire, et VirtualBox peut également avoir besoin d'activer la prise en charge ACPI pour la machine virtuelle.

  • Activez les options VirtualBox ACPI:

    VBoxManage modifyvm [nom de la machine] --acpi activé
  • Installez la prise en charge ACPI dans la machine virtuelle Ubuntu:

    sudo apt-get install acpid

Arrêter l'invité de SSH

Un moyen plus sûr d'arrêter la machine au cas où vous auriez un accès SSH à émettre

user@virtualmachine: sudo poweroff

Cela prendra soin d'arrêter et d'éteindre en toute sécurité votre système d'exploitation invité.

Takkat
la source
Je souhaite utiliser la machine virtuelle comme serveur LAMP à des fins de test. Donc, après la configuration initiale, je voulais éviter d'interagir entièrement avec elle (comme SSH). Mais il semble qu'il n'y ait pas de moyen propre de s'arrêter avec VirtualBox.
Oxwivi
Attendez, maintenant que vous l'avez mentionné VBoxManage, j'ai vérifié sa page de manuel - il y a une option qui va VBoxManage controlvm <uuid>|<name> acpipowerbutton. Ubuntu Server respectera-t-il le signal et l'arrêt?
Oxwivi
Je pense que le package acpidest requis. Bien que je devrais vérifier s'il est installé par défaut dans Ubuntu Server.
Oxwivi
J'utilise l'astuce acpipowerbutton pour arrêter certaines machines virtuelles Windows de cron et cela fonctionne très bien. Malheureusement, je n'ai jamais essayé de l'utiliser pour arrêter un serveur Linux.
Javier Rivera
1
Veuillez les ajouter à la réponse.
Oxwivi
0

J'ai trouvé cela ici et l' ai testé - fonctionne bien.

/usr/bin/net rpc shutdown -f -t 1 -I XXX.XXX.XXX.XXX -U <shutdown_acc>%<password>

suppose que samba est installé sur l'hôte.

Kylea
la source