die "please implement this inside subclass"
}
-sub setup_systemd_console {
- my ($self, $conf) = @_;
-
- my $systemd_dir_rel = $self->ct_is_executable("/lib/systemd/systemd") ?
- "/lib/systemd/system" : "/usr/lib/systemd/system";
-
- my $systemd_getty_service_rel = "$systemd_dir_rel/getty\@.service";
-
- return if !$self->ct_file_exists($systemd_getty_service_rel);
-
- my $ttycount = PVE::LXC::Config->get_tty_count($conf);
-
- for (my $i = 1; $i < 7; $i++) {
- my $tty_service_lnk = "/etc/systemd/system/getty.target.wants/getty\@tty$i.service";
- if ($i > $ttycount) {
- $self->ct_unlink($tty_service_lnk);
- } else {
- if (!$self->ct_is_symlink($tty_service_lnk)) {
- $self->ct_unlink($tty_service_lnk);
- $self->ct_symlink($systemd_getty_service_rel, $tty_service_lnk);
- }
- }
- }
-}
-
# A few distros as well as unprivileged containers cannot deal with the
# /dev/lxc/ tty subdirectory.
sub devttydir {
my $version = $os_release->{VERSION_ID};
my $ostype = $os_release->{ID};
- my $setup_ct_getty_service;
if ($version =~ m/^(\d+)\.(\d+)$/) {
my ($major, $minor) = ($1, $2);
if ($major >= 42) {
# OK
- $setup_ct_getty_service = 1;
} elsif ($major == 13 && $minor <= 2) {
# OK
- $setup_ct_getty_service = 1 if $minor >= 2;
} elsif ($ostype eq 'sles' && $major == 12) {
# OK - shares base with LEAP (42)
- $setup_ct_getty_service = 1;
} elsif ($major == 15) {
# OK for SLES and openSUSE Leap, see: https://lwn.net/Articles/720924/
- $setup_ct_getty_service = 1;
} else {
die "unsupported suse release '$version'\n";
}
my ($year, $month, $day) = ($1, $2, $3);
if ($year >= 2017 && $month <= 12 && $day <= 31) {
# OK
- $setup_ct_getty_service = 1;
} else {
die "unsupported suse tumbleweed release '$version'\n";
}
}
my $self = { conf => $conf, rootdir => $rootdir, version => $version, os_release => $os_release };
- $self->{setup_ct_getty_service} = 1 if $setup_ct_getty_service;
$conf->{ostype} = 'opensuse';
$self->fixup_old_getty();
- if ($self->{setup_ct_getty_service}) {
- $self->setup_container_getty_service($conf);
- }
- $self->setup_systemd_console($conf);
+ $self->setup_container_getty_service($conf);
}
sub setup_network {