From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 6A7B41FF0EA for ; Thu, 13 Aug 2026 13:28:17 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id B49BC21671; Thu, 13 Aug 2026 13:27:32 +0200 (CEST) From: Jakob Klocker To: pve-devel@lists.proxmox.com Subject: [PATCH docs/manager/qemu-server 0/6] fix #7213: add `powercycle` reboot behavior Date: Thu, 13 Aug 2026 13:27:11 +0200 Message-ID: <20260813112717.272254-1-j.klocker@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 1 AWL -0.557 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods RDNS_NONE 1.274 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Message-ID-Hash: LXCZRGH3ZUOQVBMYL2FWP45BVWRVTOLT X-Message-ID-Hash: LXCZRGH3ZUOQVBMYL2FWP45BVWRVTOLT X-MailFrom: jklocker@iris.proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Jakob Klocker X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: A reboot initiated inside the guest is handled by QEMU itself: the process keeps running and only the guest OS boots again. That is fast, but the VM stays on the configuration and QEMU binary it was started with, so pending changes remain pending. This series adds a `powercycle` sub-property to the existing `reboot` option. With it set, the VM is started with `-no-reboot`, so QEMU exits on a reset; qmeventd reports the reason, and `qm cleanup` starts the VM again. The result is a full start, so pending changes take effect. To carry the new sub-property, `reboot` is converted to a property string. Existing configurations stay valid, as the previous boolean value is the default key. Note two behavior changes beyond the new sub-property: `reboot: 0` now also prevents a restart for reboots triggered through the web interface, `qm` or the API - previously only guest-initiated reboots were affected. The documented meaning of the option is that the VM does not reboot, so this seemed like the more consistent reading. And with `powercycle` set, a reset requested through the web interface, `qm` or the API also becomes a full stop and start, since `-no-reboot` makes QEMU exit on any reset. Link: https://bugzilla.proxmox.com/show_bug.cgi?id=7213 qemu-server: Jakob Klocker (4): qm: do not restart VM when 'reboot' is disabled fix #7213: config: add `powercycle` sub-property to `reboot` fix #7213: qm: cleanup: add `reset` parameter to honor `powercycle` fix #7213: qmeventd: pass `reset` to `qm cleanup` src/PVE/CLI/qm.pm | 22 +++++++++++++++++++--- src/PVE/QemuServer.pm | 41 ++++++++++++++++++++++++++++++++++++----- src/qmeventd/qmeventd.c | 36 ++++++++++++++++++++++++++++-------- src/qmeventd/qmeventd.h | 1 + 4 files changed, 84 insertions(+), 16 deletions(-) pve-manager: Jakob Klocker (1): ui: qemu: options: add editor for reboot behavior www/manager6/Makefile | 1 + www/manager6/Utils.js | 17 +++++++ www/manager6/form/RebootFeatureSelector.js | 59 ++++++++++++++++++++++ www/manager6/qemu/Options.js | 14 +++++ 4 files changed, 91 insertions(+) create mode 100644 www/manager6/form/RebootFeatureSelector.js pve-docs: Jakob Klocker (1): qm: add reboot behavior information qm.adoc | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) Summary over all repositories: 9 files changed, 212 insertions(+), 16 deletions(-) -- Generated by murpp 0.12.0