mirror of https://gitee.com/openkylin/qemu.git
Delete PID file on exit
Register an exit notifier to remove the PID file. By the time atexit() is called, qemu_write_pidfile() guarantees QEMU owns the PID file, thus we could safely remove it when exiting. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180907121319.8607-4-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
61a9346f60
commit
90a84d131c
14
vl.c
14
vl.c
|
@ -2560,6 +2560,16 @@ static void qemu_run_exit_notifiers(void)
|
|||
notifier_list_notify(&exit_notifiers, NULL);
|
||||
}
|
||||
|
||||
static const char *pid_file;
|
||||
static Notifier qemu_unlink_pidfile_notifier;
|
||||
|
||||
static void qemu_unlink_pidfile(Notifier *n, void *data)
|
||||
{
|
||||
if (pid_file) {
|
||||
unlink(pid_file);
|
||||
}
|
||||
}
|
||||
|
||||
bool machine_init_done;
|
||||
|
||||
void qemu_add_machine_init_done_notifier(Notifier *notify)
|
||||
|
@ -2884,7 +2894,6 @@ int main(int argc, char **argv, char **envp)
|
|||
const char *vga_model = NULL;
|
||||
const char *qtest_chrdev = NULL;
|
||||
const char *qtest_log = NULL;
|
||||
const char *pid_file = NULL;
|
||||
const char *incoming = NULL;
|
||||
bool userconfig = true;
|
||||
bool nographic = false;
|
||||
|
@ -3911,6 +3920,9 @@ int main(int argc, char **argv, char **envp)
|
|||
exit(1);
|
||||
}
|
||||
|
||||
qemu_unlink_pidfile_notifier.notify = qemu_unlink_pidfile;
|
||||
qemu_add_exit_notifier(&qemu_unlink_pidfile_notifier);
|
||||
|
||||
if (qemu_init_main_loop(&main_loop_err)) {
|
||||
error_report_err(main_loop_err);
|
||||
exit(1);
|
||||
|
|
Loading…
Reference in New Issue