]> git.proxmox.com Git - mirror_qemu.git/commit
vl: Unlink absolute PID file path
authorHanna Reitz <hreitz@redhat.com>
Thu, 9 Jun 2022 12:27:01 +0000 (14:27 +0200)
committerHanna Reitz <hreitz@redhat.com>
Tue, 12 Jul 2022 12:31:15 +0000 (14:31 +0200)
commit85c4bf8aa6c93c24876e8870ae7cf8ab2e5a96cf
tree0af33e78d3e63391fbbbc9a798cf6c4e795cef79
parenteed29d49ecc5d0db82b72538745223d09a54ee97
vl: Unlink absolute PID file path

After writing the PID file, we register an exit notifier to unlink it
when the process terminates.  However, if the process has changed its
working directory in the meantime (e.g. in os_setup_post() when
daemonizing), this will not work when the PID file path was relative.
Therefore, pass the absolute path (created with realpath()) to the
unlink() call in the exit notifier.

(realpath() needs a path pointing to an existing file, so we cannot use
it before qemu_write_pidfile().)

Reproducer:
$ cd /tmp
$ qemu-system-x86_64 --daemonize --pidfile qemu.pid
$ file qemu.pid
qemu.pid: ASCII text
$ kill $(cat qemu.pid)
$ file qemu.pid
qemu.pid: ASCII text

(qemu.pid should be gone after the process has terminated.)

Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Message-Id: <20220609122701.17172-4-hreitz@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
softmmu/vl.c