Browse Source

Call "vmctl stop" on each VM at shutdown, for OpenBSD guests this means they

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
OPENBSD_6_3
sthen 6 years ago
parent
commit
7299a2f2d8
1 changed files with 16 additions and 1 deletions
  1. +16
    -1
      src/etc/rc.d/vmd

+ 16
- 1
src/etc/rc.d/vmd View File

@ -1,6 +1,6 @@
#!/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"
@ -11,4 +11,19 @@ rc_pre() {
${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

Loading…
Cancel
Save