서버 작업 끊길까 봐 밤새셨나요? 리눅스 screen 명령어 하나로 ‘칼퇴’ 보장!

20251126_122918_리눅스_-_s__screen_사용방법

혹시 이런 경험, 없으신가요?

몇 시간짜리 데이터 분석 스크립트를 돌리거나, 용량 큰 파일을 서버로 옮기고 있는데 갑자기 노트북 와이파이가 툭 끊어집니다. 설마 하는 마음에 다시 접속해보니 터미널 연결이 끊기면서 실행하던 모든 작업이 날아갔죠.

이럴 때 ‘아, 그냥 회사에서 하고 올걸…’ 하는 후회가 밀려오는데요. 이런 끔찍한 상황을 막아주는 아주 고맙고 오래된 친구가 있습니다. 바로 리눅스 `screen` 명령어입니다.

그래서 screen이 도대체 뭔가요?

가장 쉽게 비유하자면, ‘가상의 터미널’ 혹은 ‘업무용 멀티탭’이라고 생각하면 편해요. 우리가 터미널에 접속해서 명령어를 입력하는 창 있죠? screen은 그 창을 여러 개 복제해서 백그라운드에 계속 켜둘 수 있게 해줍니다.

그래서 내 컴퓨터가 꺼지든, 인터넷 연결이 끊기든, 리눅스 서버 안에서는 마치 아무 일 없었다는 듯이 묵묵히 제 할 일을 계속하는 거죠. 1987년에 처음 등장했으니 정말 오래됐지만, 여전히 현역에서 가장 사랑받는 도구 중 하나입니다.

지금 당장 써먹는 screen 핵심 사용법 4단계

복잡한 기능도 많지만, 딱 4가지만 알면 오늘부터 바로 ‘칼퇴’가 가능해집니다. 아래 순서대로 따라 해보세요.

1. 새 세션 시작하기: 작업 공간 만들기

새로운 가상 터미널을 만드는 단계입니다. 그냥 `screen`이라고만 쳐도 되지만, 나중에 여러 작업을 관리하려면 이름을 붙여주는 게 훨씬 편해요.

screen -S my_work

이렇게 하면 ‘my_work’라는 이름의 새로운 screen 세션이 열리고, 평소처럼 명령어를 입력하면 됩니다.

2. 세션에서 빠져나오기 (Detach): 마법의 시작

작업을 걸어놓고 잠시 빠져나올 시간입니다. 이게 바로 screen의 핵심이죠. 터미널을 그냥 끄면 안 되고, 아래 단축키를 순서대로 눌러주세요.

Ctrl + a 를 누른 후, 손을 떼고 바로 d 키를 누릅니다.

이걸 ‘세션을 분리(Detach)한다’고 표현해요. 화면은 원래의 터미널로 돌아오지만, ‘my_work’ 세션은 서버 어딘가에서 조용히 계속 돌아가고 있습니다.

3. 다시 접속하기 (Reattach): 내 작업 확인하기

몇 시간 뒤, 혹은 다음 날 아침에 작업이 잘 끝났는지 확인해 볼까요? 먼저 현재 실행 중인 세션 목록을 봅니다.

screen -ls

그럼 ‘my_work’ 세션이 보일 거예요. 이제 그 세션으로 다시 들어가 봅시다.

screen -r my_work

짜잔! 아까 실행시켜 뒀던 작업 화면이 그대로 나타납니다. 정말 신기하죠?

4. 세션 완전히 종료하기: 깔끔한 마무리

모든 작업이 끝나서 더 이상 세션이 필요 없다면, 해당 세션에 접속한 상태에서 간단하게 `exit` 명령어를 입력하면 됩니다. 그럼 세션이 완전히 종료되고 목록에서도 사라져요.

요즘 대세 tmux와 비교하면 어때요?

요즘에는 `screen`보다 더 세련된 기능(예: 화면 수직/수평 분할)을 제공하는 `tmux`를 쓰는 분들도 많아졌어요. 둘의 차이는 뭘까요?

구분 screen tmux
출시 연도 1987년 2007년
핵심 특징 가볍고 단순함, 대부분의 시스템에 기본 설치 화면 분할, 창 관리, 스크립팅 등 고급 기능 풍부
추천 대상 입문자, 터미널 연결 유지 목적이 전부일 때 파워 유저, 복잡한 멀티태스킹 환경이 필요할 때

결론적으로, 터미널 연결이 끊겨도 작업을 유지하는 기본 기능에 충실하고 싶다면 `screen`만으로도 충분하고 넘칩니다.

이제 SSH 끊겨도 걱정 끝!

이제 `screen` 명령어로 여러분의 소중한 작업을 지키고, 마음 편히 노트북을 덮으세요. 지금 바로 터미널을 열고 `screen -S test` 를 입력하며 첫 세션을 시작해보는 건 어떨까요?

자주 묻는 질문 (FAQ)

  • `screen` 세션 안에서 스크롤은 어떻게 하나요?

    세션에 접속된 상태에서 `Ctrl + a`를 누른 뒤 `[` 키를 누르면 ‘Copy 모드’로 진입합니다. 이때부터 위/아래 화살표 키나 Page Up/Down 키로 스크롤할 수 있어요. 빠져나올 땐 `Esc` 키를 누르면 됩니다.

  • ‘There is no screen to be resumed.’ 메시지가 떠요.

    이 메시지는 현재 백그라운드에서 실행 중인(detached) screen 세션이 없다는 뜻입니다. `screen -ls` 명령어로 목록을 확인했을 때 ‘No Sockets found’라고 나온다면 모든 세션이 `exit`로 정상 종료되었거나, 처음부터 생성되지 않은 상태입니다.

하나만 더 볼까?