mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-08-11 19:26:46 +00:00
qm: cleanup: detect and handle reboot trigger
if the reboot trigger file was set, start the vm again also cleanup the reboot trigger on vm startup, to prevent leftover files to trigger a reboot at the next shutdown Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
dae98db96e
commit
64457ed4aa
@ -763,6 +763,7 @@ __PACKAGE__->register_method({
|
|||||||
my $vmid = $param->{vmid};
|
my $vmid = $param->{vmid};
|
||||||
my $clean = $param->{'clean-shutdown'};
|
my $clean = $param->{'clean-shutdown'};
|
||||||
my $guest = $param->{'guest-requested'};
|
my $guest = $param->{'guest-requested'};
|
||||||
|
my $restart = 0;
|
||||||
|
|
||||||
# return if we do not have the config anymore
|
# return if we do not have the config anymore
|
||||||
return if !-f PVE::QemuConfig->config_file($vmid);
|
return if !-f PVE::QemuConfig->config_file($vmid);
|
||||||
@ -790,10 +791,21 @@ __PACKAGE__->register_method({
|
|||||||
PVE::QemuServer::vm_stop_cleanup($storecfg, $vmid, $conf, 0, 0);
|
PVE::QemuServer::vm_stop_cleanup($storecfg, $vmid, $conf, 0, 0);
|
||||||
}
|
}
|
||||||
PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'post-stop');
|
PVE::GuestHelpers::exec_hookscript($conf, $vmid, 'post-stop');
|
||||||
|
|
||||||
|
$restart = eval { PVE::QemuServer::clear_reboot_request($vmid) };
|
||||||
|
warn $@ if $@;
|
||||||
});
|
});
|
||||||
|
|
||||||
warn "Finished cleanup for $vmid\n";
|
warn "Finished cleanup for $vmid\n";
|
||||||
|
|
||||||
|
if ($restart) {
|
||||||
|
warn "Restarting VM $vmid\n";
|
||||||
|
PVE::API2::Qemu->vm_start({
|
||||||
|
vmid => $vmid,
|
||||||
|
node => $nodename,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
}});
|
}});
|
||||||
|
|
||||||
|
@ -5340,6 +5340,10 @@ sub vm_start {
|
|||||||
|
|
||||||
die "VM $vmid already running\n" if check_running($vmid, undef, $migratedfrom);
|
die "VM $vmid already running\n" if check_running($vmid, undef, $migratedfrom);
|
||||||
|
|
||||||
|
# clean up leftover reboot request files
|
||||||
|
eval { clear_reboot_request($vmid); };
|
||||||
|
warn $@ if $@;
|
||||||
|
|
||||||
if (!$statefile && scalar(keys %{$conf->{pending}})) {
|
if (!$statefile && scalar(keys %{$conf->{pending}})) {
|
||||||
vmconfig_apply_pending($vmid, $conf, $storecfg);
|
vmconfig_apply_pending($vmid, $conf, $storecfg);
|
||||||
$conf = PVE::QemuConfig->load_config($vmid); # update/reload
|
$conf = PVE::QemuConfig->load_config($vmid); # update/reload
|
||||||
|
Loading…
Reference in New Issue
Block a user