[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#844549: network-console broken: no screen to be resumed matching sh



Hello,

Martin Michlmayr, on Wed 16 Nov 2016 12:07:07 -0800, wrote:
> I believe below is the right fix, i.e. start screen when screen exists and
> when we're on serial or when we're NOT on network.

But AIUI the intent was to have screen in ssh connections too.

We could have the case where d-i is first started with the serial
console, running through screen, and enable the network console, which
we'd also want to run through screen.

I'd thus say that we rather want the attached changes, to have one
screen session per terminal type.

I'm also thinking that we perhaps want to add -x when resuming a
session, so that somebody can connect trough ssh several times ?

Samuel
diff --git a/src/lib/debian-installer.d/S70menu b/src/lib/debian-installer.d/S70menu
index 7b35fac..2549e29 100644
--- a/src/lib/debian-installer.d/S70menu
+++ b/src/lib/debian-installer.d/S70menu
@@ -14,11 +14,11 @@ else
 	if [ -x "$screen_bin" -a \( "$TERM_TYPE" = network -o "$TERM_TYPE" = serial \) -a "$TERM" != dumb ]; then
 		# there's GNU/screen binary, run menu in it.
 		# call this script again with in GNU/screen, possibly in UTF-8 mode
-		SCREEN_OPT=""
+		SCREEN_OPT="-S $TERM_TYPE"
 		[ -n "$TERM_UTF8" ] &&
 			SCREEN_OPT="$SCREEN_OPT -U"
-		[ -d /var/run/screen/S-root -a -e /var/run/screen/S-root/* ] &&
-			SCREEN_OPT="-r"		# If GNU/screen is already started, just resume it
+		[ -d /var/run/screen/S-root -a -e /var/run/screen/S-root/*.$TERM_TYPE ] &&
+			SCREEN_OPT="-r $TERM_TYPE"		# If GNU/screen is already started, just resume it
 		set +e
 		$screen_bin $SCREEN_OPT sh -c 'printf "\033k%s\033\\" installer ; /lib/debian-installer/menu'
 		EXIT=$?

Reply to: