diff options
author | Michael Tokarev <mjt@tls.msk.ru> | 2016-11-02 17:18:50 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-11-09 14:08:17 +0100 |
commit | 004c8e0090025b4fde4e99fbc5a81049be8f79d1 (patch) | |
tree | 75acefe8753f94a3e4f99b78448097994bb0c0a9 | |
parent | f5c052b973b0b2b3aa15e6cb0b0ac48ab763a9b0 (diff) |
vl.c: move pidfile creation up the line
With current code, pid file is open after various
sockets, chardevs, fsdevs and the like. This causes
interesting effects, for example when monitor is a
unix-socket, and another qemu instance is already
running, new qemu first "damages" the socket and
next complain that it can't acquire the pid file and
exits, making running qemu unreachable.
Move pid file creation earlier, right after the call
to os_daemonize(), where we know our process id (pid).
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Message-Id: <1478096330-18081-1-git-send-email-mjt@msgid.tls.msk.ru>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | vl.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -4063,6 +4063,11 @@ int main(int argc, char **argv, char **envp) os_daemonize(); + if (pid_file && qemu_create_pidfile(pid_file) != 0) { + error_report("could not acquire pid file: %s", strerror(errno)); + exit(1); + } + if (qemu_init_main_loop(&main_loop_err)) { error_report_err(main_loop_err); exit(1); @@ -4340,11 +4345,6 @@ int main(int argc, char **argv, char **envp) } #endif - if (pid_file && qemu_create_pidfile(pid_file) != 0) { - error_report("could not acquire pid file: %s", strerror(errno)); - exit(1); - } - if (qemu_opts_foreach(qemu_find_opts("device"), device_help_func, NULL, NULL)) { exit(0); |