[pve-devel] applied: [PATCH container] CentOS 6: add '--nohangup' as mingetty arg
Wolfgang Bumiller
w.bumiller at proxmox.com
Wed Apr 22 13:39:50 CEST 2020
applied
On Wed, Apr 22, 2020 at 11:24:27AM +0200, Stoiko Ivanov wrote:
> When creating an unprivileged container with CentOS 6 (which will be EOL in
> Nov 2020 [0]) the console does not work.
can't wait
>
> The problem is mitigated by adding the --nohangup argument to the mingetty
> invocations during bootup (in /etc/init/tty.conf).
>
> The idea for the fix is based on the legacy template builder-scripts from
> lxc:
> https://github.com/lxc/lxc-templates/blob/master/templates/lxc-centos.in#L308
>
> Since '/etc/init/tty.conf' is only written during container creation/restore
> and since it is guarded to CentOS versions < 7, the potential for regression
> should be rather small.
I do wonder if we should have a fixup command to reapply the template fixup
methods on existing containers, but that's a different discussion...
> Tested by creating an unprivileged and a privileged CentOS6 container and
> with nesting enabled and disabled for both - the console showed up in
> all cases with this fix.
>
> [0] https://wiki.centos.org/About/Product
> Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
> ---
> I shortly considered setting the contents of '/etc/init/tty.conf' irrespective
> of the existence of the file, but went with the safer route (should people
> have customized templates). Additionally this part of the code will probably
> be removed with EOL of CentOS 6 anyways.
can't wait :p
> Thanks to Martin for reporting this!
>
> src/PVE/LXC/Setup/CentOS.pm | 11 ++++++++---
> src/test/test-centos6-001/etc/init/tty.conf.exp | 2 +-
> 2 files changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/src/PVE/LXC/Setup/CentOS.pm b/src/PVE/LXC/Setup/CentOS.pm
> index d73c0cf..1e6894b 100644
> --- a/src/PVE/LXC/Setup/CentOS.pm
> +++ b/src/PVE/LXC/Setup/CentOS.pm
> @@ -46,7 +46,7 @@ stop on runlevel [S016]
>
> respawn
> instance \$TTY
> -exec /sbin/mingetty \$TTY
> +exec /sbin/mingetty --nohangup \$TTY
> usage 'tty TTY=/dev/ttyX - where X is console id'
> __EOD__
>
> @@ -88,8 +88,13 @@ sub template_fixup {
> $self->ct_make_path('/etc/init');
>
> my $filename = "/etc/init/tty.conf";
> - $self->ct_file_set_contents($filename, $tty_conf)
> - if ! $self->ct_file_exists($filename);
> + if ($self->ct_file_exists($filename)) {
> + my $data = $self->ct_file_get_contents($filename);
> + $data =~ s|^(exec /sbin/mingetty)(?!.*--nohangup) (.*)$|$1 --nohangup $2|gm;
> + $self->ct_file_set_contents($filename, $data);
> + } else {
> + $self->ct_file_set_contents($filename, $tty_conf);
> + }
>
> $filename = "/etc/init/start-ttys.conf";
> $self->ct_file_set_contents($filename, $start_ttys_conf)
> diff --git a/src/test/test-centos6-001/etc/init/tty.conf.exp b/src/test/test-centos6-001/etc/init/tty.conf.exp
> index 5dcd7ad..efad240 100644
> --- a/src/test/test-centos6-001/etc/init/tty.conf.exp
> +++ b/src/test/test-centos6-001/etc/init/tty.conf.exp
> @@ -9,5 +9,5 @@ stop on runlevel [S016]
>
> respawn
> instance $TTY
> -exec /sbin/mingetty $TTY
> +exec /sbin/mingetty --nohangup $TTY
> usage 'tty TTY=/dev/ttyX - where X is console id'
> --
> 2.20.1
More information about the pve-devel
mailing list