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?
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.
I found this here and tested it - works nicely.
/usr/bin/net rpc shutdown -f -t 1 -I XXX.XXX.XXX.XXX -U <shutdown_acc>%<password>
assumes samba is installed on the host.