Detect of BHyve VM was powered off or rebooted?

Neel Natu neelnatu at gmail.com
Mon Feb 10 00:03:43 UTC 2014


Hi Craig,

On Sun, Feb 9, 2014 at 1:11 PM, Craig Rodrigues <rodrigc at freebsd.org> wrote:
> Hi,
>
> I posted some rc.d scripts that I am using to boot a BHyve VM
> and send the output to a serial console using the /dev/nmdm
> driver:
>
> http://lists.freebsd.org/pipermail/freebsd-virtualization/2014-January/002040.html
>
> It works quite well.  There is some things I would like to improve,
> and would like some advice on the best way to do it.
>
> (1)  If the VM was destroyed with bhyvectl --destroy --vm ${VM_NAME},
>       then I do not want to automatically restart the VM in the script.
>       User should manually:  service bhyvevm start
>
> (2)  If the VM was powered down, via shutdown -p, or halt -p,
>        then in my script I do not want to restart the VM in the script.
>        User should manually:  service bhyvevm start
>
> (3)   If the VM was rebooted via "reboot" or "shutdown -r",
>        then I *do* want the script to restart the VM.
>
> I think if I change my start_vm.sh script to do something like:
>
>
>
> (
>  while [ -e /dev/vmm/${VM} ]; do
>     /usr/sbin/bhyve -c 16 -m 8G -A -H -P -g 0 -s 0:0,hostbridge -s 1:0,lpc
> -s 2:0,virtio-net,${TAP} -s 3:0,virtio-blk,${IMG} -l com1,${CONS_A} ${VM}"
>  done
>
> )  &
>
>
> then this might cover cases (1) and (3), but what will cover
> case (2)?

The exit code of the bhyve process will be 0 if it exited because the
guest rebooted and will be non-zero if the guest did an acpi poweroff.
You can use that to distinguish between cases (2) and (3).

Having said that there are error conditions for which bhyve exits with
a non-zero exit code. So, we'll need to explicitly define an exit code
to distinguish between an acpi poweroff and these error conditions.

best
Neel

>
> Thanks for any advice.
>
> --
> Craig
> _______________________________________________
> freebsd-virtualization at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
> To unsubscribe, send any mail to "freebsd-virtualization-unsubscribe at freebsd.org"


More information about the freebsd-virtualization mailing list