Fix QEMU process discovery when binary is replaced on disk

Linux appends " (deleted)" to /proc/{pid}/exe when the binary has been
replaced (common after PVE/QEMU package upgrades while VMs remain
running). The exact string match rejected all running QEMU processes,
resulting in zero VM metrics.
This commit is contained in:
illustris
2026-03-12 20:12:38 +05:30
parent ac2ac7a27c
commit 8d9007632a
2 changed files with 78 additions and 1 deletions

View File

@@ -103,7 +103,7 @@ func (r *RealProcReader) DiscoverQEMUProcesses() ([]QEMUProcess, error) {
logging.Trace("proc readlink failed", "pid", pid, "err", err)
continue
}
if exe != "/usr/bin/qemu-system-x86_64" {
if exe != "/usr/bin/qemu-system-x86_64" && exe != "/usr/bin/qemu-system-x86_64 (deleted)" {
logging.Trace("proc exe skip", "pid", pid, "exe", exe)
continue
}