when a vm is suspended (e.g. autosuspend on windows)
we detect that it is not running, display the resume button,
but 'cont' does not wakeup the system from suspend

with this we can wake up suspended vms

Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
---
 PVE/QemuServer.pm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 00e1669..277bc58 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -5170,6 +5170,13 @@ sub vm_resume {
 
     PVE::QemuConfig->lock_config($vmid, sub {
 
+       my $res = vm_mon_cmd($vmid, 'query-status');
+       my $resume_cmd = 'cont';
+
+       if ($res->{status} && $res->{status} eq 'suspended') {
+           $resume_cmd = 'system_wakeup';
+       }
+
        if (!$nocheck) {
 
            my $conf = PVE::QemuConfig->load_config($vmid);
@@ -5177,10 +5184,10 @@ sub vm_resume {
            PVE::QemuConfig->check_lock($conf)
                if !($skiplock || PVE::QemuConfig->has_lock($conf, 'backup'));
 
-           vm_mon_cmd($vmid, "cont");
+           vm_mon_cmd($vmid, $resume_cmd);
 
        } else {
-           vm_mon_cmd_nocheck($vmid, "cont");
+           vm_mon_cmd_nocheck($vmid, $resume_cmd);
        }
     });
 }
-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to