PID
This commit is contained in:
Kroese 2023-04-29 00:26:41 +02:00 committed by GitHub
commit a37ec2c4cc
2 changed files with 11 additions and 14 deletions

View File

@ -21,13 +21,12 @@ _trap(){
_graceful_shutdown() { _graceful_shutdown() {
set +e
[ ! -f "${_QEMU_PID}" ] && return [ ! -f "${_QEMU_PID}" ] && return
[ -f "${_QEMU_SHUTDOWN_COUNTER}" ] && return [ -f "${_QEMU_SHUTDOWN_COUNTER}" ] && return
set +e echo && echo "Received $1 signal, shutting down..."
echo
echo "Received $1 signal, shutting down..."
echo 0 > "${_QEMU_SHUTDOWN_COUNTER}" echo 0 > "${_QEMU_SHUTDOWN_COUNTER}"
# Don't send the powerdown signal because vDSM ignores ACPI signals # Don't send the powerdown signal because vDSM ignores ACPI signals
@ -38,8 +37,7 @@ _graceful_shutdown() {
if [[ ! "${RESPONSE}" =~ "\"success\"" ]] ; then if [[ ! "${RESPONSE}" =~ "\"success\"" ]] ; then
echo echo && echo "ERROR: Could not send shutdown command to the guest ($RESPONSE)"
echo "ERROR: Could not send shutdown command to the guest ($RESPONSE)"
# If we cannot shutdown the usual way, fallback to the NMI method # If we cannot shutdown the usual way, fallback to the NMI method
@ -53,11 +51,9 @@ _graceful_shutdown() {
else else
echo echo && echo "Please update the VirtualDSM Agent to allow for gracefull shutdowns..."
echo "Please update the VirtualDSM Agent to allow for gracefull shutdowns..."
PID=$(cat "${_QEMU_PID}") kill -15 "$(cat "${_QEMU_PID}")"
kill -15 "${PID}"
pkill -f qemu-system-x86_64 pkill -f qemu-system-x86_64
fi fi
@ -78,8 +74,7 @@ _graceful_shutdown() {
done done
echo echo && echo "Quitting..."
echo "Quitting..."
echo 'quit' | nc -q 1 -w 1 localhost "${QEMU_MONPORT}" > /dev/null || true echo 'quit' | nc -q 1 -w 1 localhost "${QEMU_MONPORT}" > /dev/null || true
return return

View File

@ -80,8 +80,10 @@ set -m
) )
set +m set +m
PID="$(cat "${_QEMU_PID}")"
if (( KERNEL > 4 )); then if (( KERNEL > 4 )); then
pidwait -F "${_QEMU_PID}" & wait $! pidwait "$PID" & wait $!
else else
tail --pid "$(cat "${_QEMU_PID}")" --follow /dev/null & wait $! tail --pid "$PID" --follow /dev/null & wait $!
fi fi