Hi Craig, > On Feb 11, 2014, at 2:29 PM, Craig Rodrigues <rodr...@freebsd.org> wrote: > >> On Tue, Feb 11, 2014 at 11:11 AM, John Baldwin <j...@freebsd.org> wrote: >> >>> On Sunday, February 09, 2014 7:03:41 pm Neel Natu wrote: >>> Hi Craig, >>> >>> On Sun, Feb 9, 2014 at 1:11 PM, Craig Rodrigues <rodr...@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. >> >> OTOH, in all the cases when bhyve exits with a non-zero exit code, you >> will want to exit the loop which would treat it the same as shutdown -p. I >> think you can just do this: >> >> while [ -e /dev/vmm/${VM} ]; do >> if ! bhyve ...; then >> break >> fi >> done > > > > One question, if "bhyve" exits, do I have to call bhyveload again before > calling bhyve?
Yes, that is correct. You will also need to destroy the VM after bhyve exits. Best Neel > > The /usr/share/examples/bhyve/vmrun.sh has a loop which does: > > while [ 1 ] ; do > > ... > bhyvectl --destroy > bhyveload > bhyve > > ... > done > > -- > Craig > _______________________________________________ > freebsd-virtualization@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization > To unsubscribe, send any mail to > "freebsd-virtualization-unsubscr...@freebsd.org" _______________________________________________ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"