are signalled to shutdown cleanly. Wait for each to finish to avoid too much
busy work at once; this may need revising if it turns out to be too slow with
a larger number of VMs (e.g. signal/delay/signal/delay/... then wait for
shutdowns), but let's avoid making it more complex unless we know it's needed.
Based on a diff from abieber@, discussed with mlarkin@ aja@ rpe@, ok rpe
#!/bin/ksh
#
-# $OpenBSD: vmd,v 1.6 2018/01/11 22:44:44 rpe Exp $
+# $OpenBSD: vmd,v 1.7 2018/02/20 10:12:14 sthen Exp $
daemon="/usr/sbin/vmd"
${daemon} -n ${daemon_flags}
}
+list_running() {
+ vmctl status | awk '$2 ~ "[0-9]" {print $8}'
+}
+
+rc_stop() {
+ for vm in $(list_running); do
+ _rc_do vmctl stop "$vm"
+ while list_running | fgrep -wq "$vm"; do
+ sleep .1
+ done
+ done
+
+ pkill -T "${daemon_rtable}" -xf "${pexp}"
+}
+
rc_cmd $1