Shutting down Ubuntu Server running in headless VirtualBox

I'm running Ubuntu Server using VBoxHeadless. How do I send ACPI shutdown signal through VirtualBox and make Ubuntu Server respect it and comply with the shutdown signal?


Solution 1:

If you want to shutdown the guest Ubuntu you have two options:

Shutting down a guest using VBoxManage

A virtual machine can be controlled by command line using the VBoxManage command line tool:

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

For power off by ACPI the virtual OS needs to be capable to do so, and VirtualBox may also need to enable ACPI support for the VM.

  • Enable VirtualBox ACPI options:

    VBoxManage modifyvm [nameofmachine] --acpi on
  • Install ACPI support in the Ubuntu VM:

    sudo apt-get install acpid

Shutting down guest from SSH

A safer way to shut down the machine in case you have SSH access woud be to issue

user@virtualmachine: sudo poweroff

This will take care to safely shut down and poweroff your guest OS.