[pve-devel] [PATCH container] fix #2778: use vm_start instead of systemctl to start/restart container

Oguz Bektas o.bektas at proxmox.com
Thu Jun 18 16:42:55 CEST 2020


when a backup task in 'stop' mode is executed, VZDump calls 'start_vm'
sub instead of 'PVE::LXC::vm_start'.

'start_vm' however does not follow our regular process but instead uses
systemctl to start the container, which results in the guest hookscripts
not being executed in 'pre-start' and 'post-start'.

to call the hooks correctly we can just make use of the
PVE::LXC::vm_start routine which already handles them.

Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
---
 src/PVE/VZDump/LXC.pm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/PVE/VZDump/LXC.pm b/src/PVE/VZDump/LXC.pm
index 0dc60c4..ca3dc10 100644
--- a/src/PVE/VZDump/LXC.pm
+++ b/src/PVE/VZDump/LXC.pm
@@ -266,7 +266,8 @@ sub stop_vm {
 sub start_vm {
     my ($self, $task, $vmid) = @_;
 
-    $self->cmd(['systemctl', 'start', "pve-container\@$vmid"]);
+    my $conf = PVE::LXC::Config->load_config($vmid);
+    PVE::LXC::vm_start($vmid, $conf);
 }
 
 sub suspend_vm {
-- 
2.20.1




More information about the pve-devel mailing list