diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c index 14588a9261..fe61a9aa30 100644 --- a/src/bhyve/bhyve_process.c +++ b/src/bhyve/bhyve_process.c @@ -278,26 +278,18 @@ virBhyveProcessStop(bhyveConnPtr driver, return -1; } - if ((priv != NULL) && (priv->mon != NULL)) - bhyveMonitorClose(priv->mon); - - /* First, try to kill 'bhyve' process */ - if (virProcessKillPainfully(vm->pid, true) != 0) - VIR_WARN("Failed to gracefully stop bhyve VM '%s' (pid: %d)", - vm->def->name, - (int)vm->pid); - - /* Cleanup network interfaces */ - bhyveNetCleanup(vm); - - /* No matter if shutdown was successful or not, we - * need to unload the VM */ if (!(cmd = virBhyveProcessBuildDestroyCmd(driver, vm->def))) - goto cleanup; + return -1; if (virCommandRun(cmd, NULL) < 0) goto cleanup; + if ((priv != NULL) && (priv->mon != NULL)) + bhyveMonitorClose(priv->mon); + + /* Cleanup network interfaces */ + bhyveNetCleanup(vm); + ret = 0; virCloseCallbacksUnset(driver->closeCallbacks, vm,