Switch to using bash traps to destroy bhyve vms.
This commit is contained in:
parent
fb759470f5
commit
cd6d8f3f69
@ -35,6 +35,33 @@ if [ "$VERBOSE" = "YES" ]; then
|
|||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
############## Setup #########################
|
||||||
|
|
||||||
|
function cleanup {
|
||||||
|
for vm in "${vms[@]}"; do
|
||||||
|
log "Destroying bhyve vm $f"
|
||||||
|
bhyvectl "--vm=$vm" --destroy
|
||||||
|
log "Destroyed bhyve vm $f"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
vms=()
|
||||||
|
for sig in EXIT INT QUIT HUP TERM; do
|
||||||
|
trap "set +e; cleanup" "$sig"
|
||||||
|
done
|
||||||
|
|
||||||
|
function die {
|
||||||
|
local status_code="$1"
|
||||||
|
shift
|
||||||
|
(>&2 echo "${@}")
|
||||||
|
exit "$status_code"
|
||||||
|
}
|
||||||
|
|
||||||
|
function log {
|
||||||
|
(>&2 echo "${@}")
|
||||||
|
}
|
||||||
|
|
||||||
|
############## Program #########################
|
||||||
|
|
||||||
function main {
|
function main {
|
||||||
local cmd="$1"
|
local cmd="$1"
|
||||||
shift 1
|
shift 1
|
||||||
@ -122,6 +149,7 @@ function start_vm {
|
|||||||
if [ "$VNC_ENABLE" = "YES" ]; then
|
if [ "$VNC_ENABLE" = "YES" ]; then
|
||||||
additional_args+=("-s" "29,fbuf,tcp=$VNC_LISTEN,w=1920,h=1080")
|
additional_args+=("-s" "29,fbuf,tcp=$VNC_LISTEN,w=1920,h=1080")
|
||||||
fi
|
fi
|
||||||
|
vms+=("$name")
|
||||||
while true; do
|
while true; do
|
||||||
set -x
|
set -x
|
||||||
set +e
|
set +e
|
||||||
@ -156,9 +184,6 @@ function start_vm {
|
|||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
bhyvectl "--vm=$name" --destroy
|
|
||||||
echo "Destroyed bhyve vm."
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function detect_available_link {
|
function detect_available_link {
|
||||||
|
@ -16,9 +16,9 @@ load_rc_config $name
|
|||||||
: ${poudboot_enable:=YES}
|
: ${poudboot_enable:=YES}
|
||||||
|
|
||||||
command=/usr/sbin/daemon
|
command=/usr/sbin/daemon
|
||||||
command_dendrite=poudboot
|
|
||||||
pidfile=/var/run/${name}.pid
|
pidfile=/var/run/${name}.pid
|
||||||
|
|
||||||
command_args="-P $pidfile -u root -f -S -T $name poudboot start"
|
command_args="-p $pidfile -u root -f -S -T $name poudboot start"
|
||||||
|
|
||||||
|
export PATH="${PATH}:/usr/local/bin"
|
||||||
run_rc_command "$1"
|
run_rc_command "$1"
|
||||||
|
Loading…
Reference in New Issue
Block a user