스크린 세션을 시작하고 지정된 터미널 크기를 사용하여 애플리케이션을 실행하는 방법

스크린 세션을 시작하고 지정된 터미널 크기를 사용하여 애플리케이션을 실행하는 방법

화면 크기가 고정된 오래된 앱을 사용하려고 하는데 실제로 다양한 화면 크기에 적응하지 못합니다. 화면 명령으로 이 작업을 수행할 수 있을 것 같지만 방법을 모르겠습니다. 커널 모드 전환, VGA 글꼴 및 최신 LCD 크기 간의 어리석은 상호 작용으로 인해 시스템 콘솔의 크기가 실제로 조정되지는 않습니다. 80 x 25는 내 하드웨어에서 금지된 크기입니다.

그러나 일부 문서에서는 screen을 -w [lines [cols]]시도하면 명령이 아니라고 screen -w 80 25 ./runme불평만 한다고 합니다 . -w내 생각에 문서는 제대로 작성되지 않았으며 실제로는 termcap 항목을 설명하고 있습니다.

쉘 스크립트를 사용하여 자동 시작이 가능했으면 좋겠지만 시작 화면으로 다른 쉘 스크립트를 대상으로 하는 쉘 스크립트를 실행하는 데 아무런 문제가 없습니다.

답변1

해당 명령을 사용하여 고정된 화면 크기 내에서 이전 앱을 실행하려는 것 같지만 screen이를 수행하는 방법에 대해 약간의 혼란을 겪고 있습니다. 맞습니다. 해당 -w옵션은 화면 크기를 설정하는 것이 아니라 터미널의 하드 상태 줄 너비를 설정하는 것입니다.

안타깝게도 screen기본적으로 애플리케이션에 고정된 화면 크기를 설정하는 기본 제공 방법을 제공하지 않습니다. 터미널 크기는 일반적으로 screen.

이 문제를 해결하려면 세션 stty에서 애플리케이션을 실행하기 전에 명령을 사용하여 터미널 크기를 설정해 볼 수 있습니다 screen. 다음은 이 프로세스를 자동화하기 위해 쉘 스크립트를 작성하는 방법의 예입니다.

#!/bin/bash

# Set the terminal size to 80x25
stty rows 25 cols 80

# Start your application inside a screen session
screen -dmS myapp ./runme

# Attach to the screen session to interact with your application
screen -r myapp

이 스크립트에서:

  1. 세션을 시작하기 전에 stty명령을 사용하여 터미널 크기를 80x25로 설정했습니다 screen.

  2. screen분리 모드에서 -dmS세션을 시작하고 ( ), 이름을 지정하고( myapp) 실행할 명령을 지정합니다( ./runme).

  3. screen마지막으로 애플리케이션과 상호 작용하는 데 사용할 세션 에 연결합니다 screen -r myapp.

이 스크립트는 레거시 애플리케이션이 지정된 터미널 크기 내에서 실행되는지 확인하는 데 도움이 됩니다. 특정 요구 사항에 맞게 스크립트와 터미널 크기를 조정하는 것을 잊지 마십시오.

일부 응용 프로그램은 비표준 터미널 크기에서 예상대로 실행되지 않을 수 있으며 이 방법은 모든 응용 프로그램에서 완벽하게 작동하지 않을 수 있습니다. 애플리케이션이 특정 터미널 크기 설정에 크게 의존하는 경우 대체 솔루션을 찾거나 터미널 크기가 호환되는 가상 머신이나 컨테이너와 같은 보다 적합한 환경에서 실행하는 것을 고려할 수 있습니다.

관련 정보