Michael Tokarev <m...@tls.msk.ru> writes: > 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 a bit earlier.
Makes sense, but ... > Signed-off-by: Michael Tokarev <m...@tls.msk.ru> > --- > vl.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/vl.c b/vl.c > index 55763f7..7989f75 100644 > --- a/vl.c > +++ b/vl.c > @@ -4305,6 +4305,11 @@ int main(int argc, char **argv, char **envp) > exit(1); > } > > + if (pid_file && qemu_create_pidfile(pid_file) != 0) { > + error_report("could not acquire pid file: %s", strerror(errno)); > + exit(1); > + } > + > page_size_init(); > socket_init(); > ... is this early enough? For instance, we clobber the log file another 200 lines further up. A "don't clobber anything externally visible before this spot" comment could be useful. > @@ -4326,11 +4331,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);