Skip to content
  • Hanna Reitz's avatar
    85c4bf8a
    vl: Unlink absolute PID file path · 85c4bf8a
    Hanna Reitz authored
    
    
    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: default avatarHanna Reitz <hreitz@redhat.com>
    Message-Id: <20220609122701.17172-4-hreitz@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    85c4bf8a
    vl: Unlink absolute PID file path
    Hanna Reitz authored
    
    
    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: default avatarHanna Reitz <hreitz@redhat.com>
    Message-Id: <20220609122701.17172-4-hreitz@redhat.com>
    Reviewed-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
Loading