On Tue, 04/03 15:12, Michal Privoznik wrote: > The first one is trivial. > > The second is slightly trickier. Libvirt has this virCommand subsystem > (found under src/util/vircommand.c) which it uses to spawn commands. The > subsystem allows libvirt to both daemonize a process and learn its PID. > The latter of course does not work if command daemonizes itself (hence > libvirt will not use qemu-pr-helper --daemon). BUT, we still need > qemu-pr-helper to lock the pidfile (so that when libvirt tries to lock > it it is denied). NB, libvirt uses fnctl(cmd = F_SETLK) to lock > pidfiles. So leaking locked FD into qemu-pr-helper is not an option > because that doesn't survive fork(). > > Another, trivial reason might be that if I run: > > qemu-pr-helper --pidfile /tmp/pr.pid > > (without --daemon), I'd still expect qemu-pr-helper to write pidfile > because I told it to. > > Michal Privoznik (2): > qemu-pr-helper: Daemonize before dropping privileges > qemu-pr-helper: Write pidfile more often
Reviewed-by: Fam Zheng <f...@redhat.com>