#include "qemu/accel.h"
#include "qemu/ctype.h"
#include "qemu/cutils.h"
+#include "qemu/exit-with-parent.h"
#include "qemu/sockets.h"
#include "qobject/qdict.h"
#include "qobject/qjson.h"
#ifndef _WIN32
pid = fork();
if (pid == 0) {
-#ifdef __linux__
- /*
- * Although we register a ABRT handler to kill off QEMU
- * when g_assert() triggers, we want an extra safety
- * net. The QEMU process might be non-functional and
- * thus not have responded to SIGTERM. The test script
- * might also have crashed with SEGV, in which case the
- * cleanup handlers won't ever run.
- *
- * This PR_SET_PDEATHSIG setup will ensure any remaining
- * QEMU will get terminated with SIGKILL in these cases.
- */
- prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
-#endif /* __linux__ */
-#ifdef __FreeBSD__
- int sig = SIGKILL;
- procctl(P_PID, getpid(), PROC_PDEATHSIG_CTL, &sig);
-#endif /* __FreeBSD__ */
execlp("/bin/sh", "sh", "-c", command->str, NULL);
exit(1);
}
"-display none "
"-audio none "
"%s"
+ "%s"
" -accel qtest",
tracearg,
socket_path,
getenv("QTEST_LOG") ? DEV_STDERR : DEV_NULL,
qmp_socket_path,
+ can_exit_with_parent() ?
+ "-run-with exit-with-parent=on " : "",
extra_args ?: "");
return args;