Bhyve supports ACPI shutdown by issuing SIGTERM signal to the bhyve
process. Add the bhyveDomainShutdown() function and
virBhyveProcessShutdown() helper function that just sends SIGTERM to
VM's bhyve process. If a guest supports ACPI shutdown then process
will be terminated and this event will be noticed by the bhyve monitor
code that will handle setting proper status and clean up VM's resources.
Also, remove usage of virProcessKillPainfully() from domainDestroy.
First, it sends SIGTERM to the process that actually triggers ACPI reset
and that's not we want to do. Second, we're doing bhyvectl --destroy
later and it kills bhyve process, so there's no need to manually kill
it.
---
Changes from v1:
- Sending SIGKILL dropped completely for destroy due to reasons described
in the commit message. This is mainly based on the results of this (ongoing)
discussion:
https://lists.freebsd.org/pipermail/freebsd-virtualization/2016-April/004...
src/bhyve/bhyve_driver.c | 27 +++++++++++++++++++++++++++
src/bhyve/bhyve_process.c | 39 +++++++++++++++++++++++++++------------
src/bhyve/bhyve_process.h | 2 ++
3 files changed, 56 insertions(+), 12 deletions(-)