Recently I upgraded the hardware of my loyal FreeBSD server from an old Pentium to the new Skylake architecture. The hardware upgrade was necessary to support multiple virtual machines using the new bhyve hypervisor available with FreeBSD 10. I sucessfully installed Debian Linux on a virtual machine using the vm-bhyve port.
Then I let Puppet take over the configuration of the general settings. And suddenly the guest would not shut down any more. The
vm stop command was just hanging and waiting. It turned out to be related to ACPI: bhyve uses the power button event to trigger the shutdown of the guest. But my default Puppet manifests removed the
acpid package from the guest and so this event never triggered any action.
acpid package was not enough to bring back the shutdown functionality. The Debian
acpid package recommends (I do not install recommended packages by default) the
acpi-support-base package, which is also necessary to handle the power button event. After installation of both packages and starting the
acpid service the shutdown was working again.
acpid is required to be able to shutdown a Linux guest on bhyve.