pve-dbus-vmstate@VMID.service is a generated systemd unit that Proxmox creates for every VM. It bridges QEMU VM state changes to D-Bus so other services can react. You’ll see it in systemctl output, and it’s harmless.

Where the unit comes from
Proxmox generates the unit file on the fly. Check it with systemctl cat pve-dbus-vmstate@100.service. The unit is a simple script that listens on a D-Bus socket and forwards state changes.
systemctl cat pve-dbus-vmstate@100.service
It’s not a daemon that runs constantly. It starts when the VM starts and stops when the VM stops. That’s why you see it in systemctl list-units only for running VMs.
When it starts and stops
The service is tied to the VM’s lifecycle. Start VM 100 and the service appears. Stop the VM and it goes away. You can watch it with journalctl -u pve-dbus-vmstate@100.service -f.
It’s not doing anything heavy. It just waits for D-Bus signals from QEMU about the VM state. Things like “running”, “paused”, “stopped”. Other Proxmox components listen for those signals to update the web UI or trigger HA actions.

Why Proxmox creates it for every VM
Proxmox uses D-Bus as a message bus between QEMU and its management stack. The service is a small bridge that translates VM state changes into D-Bus signals. That way, the web UI doesn’t have to poll QEMU directly. It just listens on D-Bus.
It’s a clean design. One service per VM keeps things isolated. If a VM misbehaves, its service doesn’t affect others. And it’s all generated automatically, so you never have to touch it.
Can you disable it?
You can, but you shouldn’t. It’s part of the VM management stack. Disabling it might break the web UI’s ability to show accurate VM states. If you’re really curious, you can mask it for one VM and see what breaks. But it’s not worth the trouble.
If you’re poking around systemd and wondering what all these pve-* services are, this one is nothing to worry about. It’s just Proxmox doing its thing.
More on Proxmox internals
If you’re into this kind of thing, check out Proxmox Suspend Resume Web UI for another look at VM state handling.