return [];
}
+my sub print_ct_stderr_log {
+ my ($vmid) = @_;
+ my $log = eval { file_get_contents("/run/pve/ct-$vmid.stderr") };
+ return if !$log;
+
+ while ($log =~ /^\h*(lxc-start:?\s+$vmid:?\s*\S+\s*)?(.*?)\h*$/gm) {
+ my $line = $2;
+ print STDERR "$line\n";
+ }
+}
+
my sub monitor_state_change($$) {
my ($monitor_socket, $vmid) = @_;
die "no monitor socket\n" if !defined($monitor_socket);
if (my $err = $@) {
warn "problem with monitor socket, but continuing anyway: $err\n";
} elsif (!$success) {
+ print_ct_stderr_log($vmid);
die "startup for container '$vmid' failed\n";
}
}
my $monitor_socket = eval { PVE::LXC::Monitor::get_monitor_socket() };
warn $@ if $@;
+ unlink "/run/pve/ct-$vmid.stderr"; # systemd does not truncate log files
+
+ my $base_unit = $conf->{debug} ? 'pve-container-debug' : 'pve-container';
my $cmd = ['systemctl', 'start', "pve-container\@$vmid"];