[pve-devel] [PATCH qemu-server] vm_start: add syslog info with which PID a VM was started

Daniel Kral d.kral at proxmox.com
Thu Sep 26 10:36:06 CEST 2024


Adds a syslog entry to log the process id that has been given to the
QEMU VM process at start. This is helpful debugging information if the
pid shows up at other places, like a kernel stack trace, while the VM
has been running, but cannot be retrieved anymore (e.g. the pidfile has
been deleted or only the syslog is available).

The syslog has been put in the `PVE::QemuServer::vm_start_nolock`
subroutine to make sure that the PID is logged not only when the VM has
been started by the API endpoint `vm_start`, but also when the VM is
started by a remote migration.

Signed-off-by: Daniel Kral <d.kral at proxmox.com>
Suggested-by: Hannes Dürr <h.duerr at proxmox.com>
Suggested-by: Friedrich Weber <f.weber at proxmox.com>
---
 PVE/QemuServer.pm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index b26da505..d998b360 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -43,6 +43,7 @@ use PVE::ProcFSTools;
 use PVE::PBSClient;
 use PVE::RESTEnvironment qw(log_warn);
 use PVE::RPCEnvironment;
+use PVE::SafeSyslog;
 use PVE::Storage;
 use PVE::SysFSTools;
 use PVE::Systemd;
@@ -5971,6 +5972,8 @@ sub vm_start_nolock {
     eval { PVE::QemuServer::PCI::reserve_pci_usage($pci_reserve_list, $vmid, undef, $pid) };
     warn $@ if $@;
 
+    syslog("info", "VM $vmid started with pid $pid.");
+
     if (defined(my $migrate = $res->{migrate})) {
 	if ($migrate->{proto} eq 'tcp') {
 	    my $nodename = nodename();
-- 
2.39.5





More information about the pve-devel mailing list