screen: 리눅스에서 셸을 유지하면서 나갔다 들어오는 방법
이번 글은 Linux 내장 유틸리티인 screen에 대해 소개한다. screen은 셸을 나가도 history가 유지해주는 프로그램이다. tmux와 비교되는 경우도 있는데 화면 분할 및 창 이동이 screen의 주요 기능 중 하나지만 그것만 있다면 대부분 tmux를 사용할 것이다.
아직 screen의 작동 원리는 잘 모르겠지만, 비유적으로 설명하자면 tmux는 셸 단위로 실행되는 것에 비해 screen은 셸 밖에서 실행된다고 볼 수 있다. 따라서 셸을 종료하더라도 screen으로 실행한 셸은 계속 살아있으며, 다른 셸에서 해당 screen 세션으로 접속하면 애초에 접속을 끊지 않은 것 같은 UX를 경험할 수 있는 것이다.
기준 환경:
WSL v2
1. 설치 및 명령어 소개
screen은 Debian 계열에서 기본 설치돼있으므로 설치 방법은 생략한다. (apt-get install screen
)
screen은 sudo 권한이 필요하다.
1 | # screen 세션의 목록을 표시한다. |
2. 예제
sudo screen -list
명령으로 현재 열려 있는 screen 세션을 확인한다.
현재 3806
과 317
세션이 열려있는 것을 확인할 수 있다. (3806
의 경우 이 예제에서 사용하지 않는다.)
sudo screen -r 317
명령으로 317
세션으로 접속하고 임의의 명령들을 실행했다.
이후 ctrl+a+d
를 입력해 현재 screen 세션에서 원래 셸로 돌아왔다.
아예 다른 셸에서 sudo screen -r 317
로 재접속하였다. 성공적으로 재접속되었고 마치 셸을 닫지 않은 것처럼 그대로 작업이 수행되고 그 기록까지 곧장 확인할 수 있다.
ctrl+a+d
로 세션에서 나온 후 sudo screen -X -S 317 quit
명령으로 317
세션을 종료했다.
screen: 리눅스에서 셸을 유지하면서 나갔다 들어오는 방법