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

Daniel Herzig d.herzig at proxmox.com
Mon Oct 28 08:49:21 CET 2024


This works flawlessly on my testsetup. I find this information very
useful.

Reviewed-by: Daniel Herzig <d.herzig at proxmox.com>

Daniel Kral <d.kral at proxmox.com> writes:

> 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.
>
> Suggested-by: Hannes Dürr <h.duerr at proxmox.com>
> Suggested-by: Friedrich Weber <f.weber at proxmox.com>
> Signed-off-by: Daniel Kral <d.kral at proxmox.com>
> ---
> Differences to v1:
>     - Fix commit message trailer order
>     - Uppercase PID in syslog message
>
>  PVE/QemuServer.pm | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index b26da505..ec370473 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();




More information about the pve-devel mailing list