--- title: screen — 세션 유지(전통 도구) date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: tmux 이전부터 쓰인 세션 유지 도구. 기본 설치된 환경이 많아 여전히 쓰입니다. tags: 프로그램, 원격 서버 접속 관리, screen --- **💬 "screen 명령어"** screen은 tmux와 같은 목적의 **세션 유지 도구**입니다. 오래된 서버에 기본 설치된 경우가 많습니다. 접두키는 Ctrl+a이며, 이후 키를 조합합니다. - **개념**: 터미널 세션을 만들어 분리·재접속할 수 있습니다. - **접두키**: Ctrl+a 뒤에 명령 키를 누릅니다. - **분리/재접속**: Ctrl+a d로 분리, screen -r로 재접속합니다. - **목록**: screen -ls로 세션 목록을 봅니다. ## 자주 쓰는 옵션 | 옵션 | 설명 | | --- | --- | | -S <이름> | 이름 있는 세션을 만듭니다 | | -r <이름> | 세션에 재접속합니다 | | -ls | 세션 목록을 봅니다 | | -dmS <이름> | 분리된 상태로 세션을 시작합니다 | ## 필수 명령어 조합 3가지 - `screen -S deploy` — 배포 세션 생성 - `screen -ls` — 세션 목록 확인 - `screen -dmS batch bash -lc '/opt/app/bin/batch.sh'` — 분리된 세션에서 배치 실행 **💬 "실무에서 가장 많이 쓰는 조합으로 예시 들어줘"** 실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다. ### 1단계 · 세션 생성 작업용 세션을 만듭니다. ``` screen -S deploy ``` ### 2단계 · 작업 실행 오래 걸리는 작업을 세션 안에서 돌립니다. ``` ./bin/deploy.sh 2>&1 | tee /tmp/deploy.log ``` ### 3단계 · 분리/재접속 Ctrl+a d로 나가고 다시 붙습니다. ``` screen -r deploy ``` ## 실무에서는 이렇게 씁니다 ### 1. 기본 설치 환경에서 장기 작업 **상황** — tmux가 없고 screen만 설치된 서버입니다. ``` screen -dmS deploy bash -lc 'cd /opt/app && ./bin/deploy.sh > /tmp/deploy.log 2>&1' ``` **결과** — 세션이 백그라운드에서 배포를 실행합니다. **포인트** — 출력을 파일로 남겨야 재접속 없이도 확인할 수 있습니다. ### 2. 세션 정리 **상황** — 오래된 screen 세션이 쌓여 있습니다. ``` screen -ls ``` **결과** — (Detached)/(Attached) 상태로 목록이 보입니다. **포인트** — Attached로 남은 세션은 누군가 작업 중일 수 있으니 확인 없이 죽이지 않습니다. ## 주의할 점 - tmux와 접두키가 달라 혼동하기 쉽습니다(Ctrl+a). - Attached 세션을 무리하게 -d로 떼면 다른 사용자 작업에 영향을 줍니다. - 서버 재부팅 시 세션이 사라집니다. ## 실제 실행 화면 분리된 screen 세션 목록을 확인한 결과입니다. ![screen 명령어 실행 결과: 세션 목록](https://games.cursorai.co.kr/assets/screen-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/remote/screen.html