소개
이 튜토리얼에서는 단일 창 내에서 여러 터미널 세션을 생성, 관리 및 탐색할 수 있는 강력한 터미널 멀티플렉서인 Linux Screen 의 기본 사항에 대한 개요를 제공합니다. Screen 세션을 시작, 분리 및 다시 연결하는 방법과 이 다재다능한 도구의 실용적인 응용 프로그램을 살펴보는 방법을 배우게 됩니다.
이 튜토리얼에서는 단일 창 내에서 여러 터미널 세션을 생성, 관리 및 탐색할 수 있는 강력한 터미널 멀티플렉서인 Linux Screen 의 기본 사항에 대한 개요를 제공합니다. Screen 세션을 시작, 분리 및 다시 연결하는 방법과 이 다재다능한 도구의 실용적인 응용 프로그램을 살펴보는 방법을 배우게 됩니다.
Linux Screen 은 단일 창 내에서 여러 터미널 세션을 생성, 관리 및 탐색할 수 있는 강력한 터미널 멀티플렉서입니다. 여러 명령이나 애플리케이션을 동시에 실행하고, 백그라운드에서 계속 실행하며, 원활하게 전환할 수 있는 방법을 제공합니다.
Linux Screen 의 주요 사용 사례 중 하나는 영구 세션을 활성화하는 것입니다. 즉, 장시간 실행되는 프로세스를 시작하고, 세션에서 분리한 다음, 나중에 다른 위치나 장치에서도 다시 연결할 수 있습니다. 이는 원격 서버 관리, 자동화된 스크립트 실행 또는 중단되지 않아야 하는 장시간 실행 프로세스 유지 관리와 같은 작업에 특히 유용합니다.
Linux Screen 의 또 다른 주요 기능은 공유 세션을 지원하는 기능입니다. 이를 통해 여러 사용자가 동일한 Screen 세션에 연결하여 협업 및 원격 지원을 활성화할 수 있습니다. 이는 여러 팀 구성원이 동일한 프로젝트에서 작업하거나 함께 문제를 해결해야 하는 시나리오에서 특히 유용할 수 있습니다.
Linux Screen 의 기본 사용법을 시연하기 위해 새로운 Screen 세션을 시작해 보겠습니다. 터미널을 열고 다음 명령을 입력합니다.
screen
이제 새로운 Screen 세션 안에 있게 됩니다. 터미널이 약간 다르게 보이거나 환영 메시지가 표시될 수 있으므로 Screen 세션에 있는지 알 수 있습니다.
이제 이 Screen 세션 내에서 간단한 명령을 실행해 보겠습니다. 실행 중인 프로세스를 확인하기 위해 top 명령을 사용합니다.
top
top 출력이 시스템 프로세스를 표시하는 것을 볼 수 있습니다.
top - HH:MM:SS up X days, HH:MM, X users, load average: X.XX, X.XX, X.XX
Tasks: XXX total, X running, XXX sleeping, X stopped, X zombie
%Cpu(s): X.X us, X.X sy, X.X ni, XX.X id, X.X wa, X.X hi, X.X si, X.X st
MiB Mem : XXXX.X total, XXXX.X free, XXX.X used, XXXX.X buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. XXXX.X avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
XXXX labex 20 0 XXXXXX XXXXX XXXXX S X.X X.X X:XX.XX top
XXXX labex 20 0 XXXXXX XXXXX XXXXX S X.X X.X X:XX.XX zsh
...
top 명령을 종료하려면 q를 누르십시오.
이제 이 Screen 세션에서 분리해 보겠습니다. 이렇게 하면 세션이 백그라운드에서 계속 실행됩니다. 분리하려면 Ctrl+A를 누른 다음 d를 누르십시오.
Ctrl+A, d
Screen 세션에서 분리되었음을 나타내는 메시지가 표시됩니다.
[detached from ...]

이제 원래 터미널 세션으로 돌아왔습니다. top 명령이 있는 Screen 세션 (종료한 세션) 은 여전히 백그라운드에서 실행 중입니다.
이제 Screen 세션에서 분리했으므로 실행 중인 세션을 나열하고 다시 연결하는 방법을 알아보겠습니다.
실행 중인 모든 Screen 세션을 나열하려면 터미널에서 screen -ls 명령을 사용합니다.
screen -ls
분리된 세션을 표시하는 다음과 유사한 출력을 볼 수 있습니다.
There is a screen on:
XXXXX.pts-X.labex (Detached)
X Sockets in /run/screen/S-labex.
출력은 세션 ID(예: XXXXX.pts-X.labex) 와 상태 (Detached) 를 보여줍니다.
가장 최근에 분리된 Screen 세션에 다시 연결하려면 screen -r 명령을 사용합니다.
screen -r
이제 Screen 세션으로 다시 돌아와야 합니다. 이전 단계에서 top을 종료했으므로 Screen 세션 내에서 표준 터미널 프롬프트를 볼 수 있습니다.

여러 Screen 세션이 실행 중인 경우 screen -r 명령 뒤에 세션 ID 를 제공하여 특정 세션에 다시 연결할 수 있습니다. 예를 들어 세션 ID 가 12345인 경우 다음을 사용합니다.
screen -r 12345
이 랩에서는 세션이 하나만 있을 가능성이 높으므로 screen -r만으로 충분합니다.
이제 Screen 세션으로 다시 돌아왔으므로 제대로 종료해 보겠습니다. Screen 세션 내에서 exit를 입력하여 이 작업을 수행할 수 있습니다.
exit
이렇게 하면 Screen 세션이 종료되고 원래 터미널로 돌아갑니다.
세션이 닫혔는지 확인하려면 Screen 세션을 다시 나열합니다.
screen -ls
실행 중인 Screen 세션이 없음을 나타내는 출력을 볼 수 있습니다.
No Sockets in /run/screen/S-labex.

이전 단계에서는 exit 명령을 사용하여 세션 내에서 Screen 세션을 종료하는 방법을 배웠습니다. 그러나 세션이 응답하지 않거나 다시 연결하지 않고 단순히 닫고 싶을 때와 같이 세션 외부에서 Screen 세션을 종료해야 하는 경우가 있을 수 있습니다.
원래 터미널에서 특정 Screen 세션을 종료하려면 screen -X -S [session_id] quit 명령을 사용할 수 있습니다. screen -ls에서 얻을 수 있는 세션 ID 가 필요합니다.
먼저 종료할 세션이 있도록 새로운 Screen 세션을 시작해 보겠습니다.
screen
이제 Ctrl+A, d를 사용하여 이 세션에서 분리합니다.
Ctrl+A, d
실행 중인 세션을 나열하여 세션 ID 를 얻습니다.
screen -ls
출력에서 세션 ID 를 적어둡니다 (예: XXXXX.pts-X.labex).
이제 screen -X -S [session_id] quit 명령을 사용하여 세션을 종료합니다. [session_id]를 실제로 적어둔 ID 로 바꿉니다.
screen -X -S XXXXX.pts-X.labex quit
명령이 성공하면 출력이 표시되지 않아야 합니다.
세션이 종료되었는지 확인하려면 Screen 세션을 다시 나열합니다.
screen -ls
실행 중인 Screen 세션이 없음을 나타내는 출력을 볼 수 있습니다.
No Sockets in /run/screen/S-labex.
이 방법은 직접 액세스할 수 없는 Screen 세션을 강제로 종료하는 데 유용합니다.

Linux Screen 은 영구적인 터미널 세션을 관리하고 유지하는 데 유용한 도구입니다. Screen 세션을 생성, 분리, 나열, 다시 연결 및 종료하는 방법을 이해함으로써 장시간 실행되는 프로세스를 실행하고, 팀원과 협업하며, 터미널에 직접 연결되어 있지 않더라도 중요한 작업이 계속 실행되도록 할 수 있습니다. 이 튜토리얼에서는 Linux Screen 사용에 대한 필수 개념과 실용적인 예제를 다루어 생산성을 향상시키고 터미널 기반 워크플로우를 간소화하는 데 필요한 지식을 제공합니다.