QTestState *qtest_init(const char *extra_args)
{
QTestState *s;
- int sock, qmpsock, ret, i;
+ int sock, qmpsock, i;
gchar *pid_file;
gchar *command;
const char *qemu_binary;
"%s", qemu_binary, s->socket_path,
s->qmp_socket_path, pid_file,
extra_args ?: "");
-
- ret = system(command);
- exit(ret);
- g_free(command);
+ execlp("/bin/sh", "sh", "-c", command, NULL);
+ exit(1);
}
s->fd = socket_accept(sock);
pid_t pid = qtest_qemu_pid(s);
if (pid != -1) {
- /* kill QEMU, but wait for the child created by us to run system() */
kill(pid, SIGTERM);
- waitpid(s->child_pid, &status, 0);
+ waitpid(pid, &status, 0);
}
unlink(s->pid_file);