| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- shell
- 명령어
- sysadmin
- 유닉스
- linuxcommand
- 시스템관리
- 리눅스명령어
- 파일시스템
- Solaris
- terminal
- 유닉스명령어
- 사용자관리
- bash
- 정규표현식
- JavaScript
- Unix명령어
- 리눅스
- environment
- js
- php
- cups
- 자바스크립트
- 터미널
- PackageManagement
- tcsh
- coreutils
- 쉘스크립트
- linux
- UnixCommand
- UNIX
Archives
- Today
- Total
ioerror
screen 사용법 및 옵션 - 다중 터미널 세션 관리 및 백그라운드 작업 유지 본문
반응형

screen - GNU Screen
screen은 단일 물리적 터미널 또는 SSH 접속 환경에서 여러 개의 가상 터미널 세션을 생성하고 관리할 수 있게 해주는 터미널 멀티플렉서(Terminal Multiplexer)이다. 네트워크 연결이 끊기더라도 백그라운드에서 작업 중인 프로세스를 종료 없이 계속 유지(Detach)할 수 있으며, 나중에 언제든지 해당 세션에 다시 재접속(Attach)하여 작업을 이어갈 수 있다. 장시간 실행되는 스크립트 작성, 원격 서버 작업, 복수의 터미널 창 동시 관리에 필수적으로 사용된다.
1. 명령어 용도
- 사용가능 OS, Shell: All UNIX/Linux <i class="fab fa-linux"></i> <i class="fab fa-apple"></i>
- SSH 접속이 불안정한 환경에서 장시간 소요되는 DB 백업이나 소스 코드 빌드 작업을 수행할 때 세션 이탈로 인한 작업 중단을 방지하기 위해 사용된다.
- 단일 SSH 접속 창에서 여러 개의 가상 창을 열어 각각 모니터링, 에디터 작업, 로그 확인을 동시에 수행할 때 활용된다.
2. 명령어 서식
screen [-S session_name] [-ls] [-r|-R [session_name]] [-d [session_name]]
3. 명령어 옵션
- 주요 옵션 소개 테이블
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -S session_name | 새 세션을 시작할 때 세션 식별용 이름을 지정한다. | All UNIX/Linux |
| -ls (또는 -list) | 현재 백그라운드 또는 포그라운드에서 실행 중인 세션 목록을 출력한다. | All UNIX/Linux |
| -r [session_name] | 분리(Detach) 상태인 특정 세션에 재접속(Attach)한다. | All UNIX/Linux |
| -R | 재접속을 시도하고, 기존 세션이 없으면 지정한 이름으로 새 세션을 생성한다. | All UNIX/Linux |
| -d [session_name] | 다른 곳에서 접속 중(Attached)인 세션을 강제로 분리(Detach)시킨다. | All UNIX/Linux |
| -d -r | 접속 중인 세션을 강제로 분리함과 동시에 현재 터미널로 재접속한다. | All UNIX/Linux |
| -X | 지정한 세션에 직접 단축키 명령이나 문자를 보낸다. (세션 외부에 제어) | All UNIX/Linux |
- 명령어 옵션 사용시 결과 예시
# 'deploy'라는 이름의 새 세션 생성 및 진입
$ screen -S deploy
# 현재 실행 중인 screen 세션 목록 조회
$ screen -ls
# There are screens on:
# 12345.deploy (02/15/2026 10:00:00 AM) (Detached)
# 67890.pts-0.server (02/15/2026 09:30:00 AM) (Attached)
# 2 Sockets in /run/screen/S-root.
# Detached 상태인 'deploy' 세션으로 재접속
$ screen -r deploy
# 세션 내부 주요 키 단축키 (Ctrl+a 조합)
# Ctrl+a, d : 현재 세션을 백그라운드로 분리(Detach)하고 빠져나옴
# Ctrl+a, c : 세션 내에서 새로운 가상 윈도우 생성
# Ctrl+a, n : 다음 가상 윈도우로 이동
# Ctrl+a, p : 이전 가상 윈도우로 이동
# Ctrl+a, k : 현재 가상 윈도우 종료
- 12345.deploy: [PID].[세션이름] 형태의 세션 식별자이다.
- (Detached): 세션이 백그라운드에서 독립적으로 실행 중이며 접속되어 있지 않은 상태를 의미한다.
- (Attached): 현재 특정 터미널에 연결되어 사용 중인 상태를 의미한다.
4. 명령어 특이사항(유의사항)
- 세션 중복 접속 해결: 네트워크 단절 등으로 인해 세션이 Attached 상태로 남아 재접속이 안 될 경우 screen -d -r [세션명] 명령어를 사용하여 기존 접속을 끊고 다시 연결해야 한다.
- 완전 종료 방법: 세션 내에서 exit를 입력하거나 Ctrl+a, k를 눌러 윈도우를 모두 닫으면 해당 screen 세션이 완전히 종료(Dead)된다.
- Dead 세션 정리: 세션이 정상 종료되지 않고 찌꺼기로 남은 경우 screen -wipe 명령을 통해 정리할 수 있다.
- 현대적 대체 도구: 최근 환경에서는 유연한 화면 분할과 풍부한 단축키 기능을 제공하는 tmux가 대체 도구로 많이 쓰이지만, 경량성과 보편성 덕분에 screen도 여전히 널리 사용된다.
관련 명령어들
- tmux: 강력한 화면 분할 및 세션 관리를 제공하는 현대적 터미널 멀티플렉서이다.
- nohup: SSH 세션이 종료되어도 프로세스를 백그라운드에서 계속 실행하게 한다.
- disown: 현재 셸에서 실행 중인 작업(Job)을 셸 종료 시그널(SIGHUP) 영향에서 제외한다.
- bg: 일시 정지된 작업을 백그라운드 상태로 전환하여 실행한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| set 사용법 및 옵션 - 쉘 환경 변수 및 실행 옵션 설정·조회 (0) | 2026.07.29 |
|---|---|
| sed 사용법 및 옵션 - 비대화형 스트림 에디터를 활용한 텍스트 변환 및 편집 (0) | 2026.07.29 |
| scp 사용법 및 옵션 - SSH 프로토콜을 이용한 원격 파일 안전 복사 (0) | 2026.07.29 |
| rwho 사용법 및 옵션 - 네트워크 내 원격 호스트에 로그인한 사용자 목록 조회 (0) | 2026.07.29 |
| rwall 사용법 및 옵션 - 네트워크 내 특정 호스트의 모든 로그인 사용자에게 메시지 전송 (0) | 2026.07.29 |
Comments