연결이 끊겨도 세션을 유지하는 도구
tmux는 한 터미널 안에 여러 창과 분할 화면을 만들고, 클라이언트 연결이 끊긴 뒤에도 세션을 유지해. SSH로 서버에 접속해 긴 작업을 시작한 뒤 노트북을 닫아도, 서버와 tmux가 살아 있다면 나중에 다시 붙어 같은 화면을 볼 수 있어.
서버, 세션, 창, 분할 화면
- 서버: 사용자별로 실행되는 tmux 데몬이야.
- 세션: 이름이 있는 작업 공간이며 클라이언트가 끊겨도 남아.
- 창: 세션 안의 탭과 비슷한 단위야.
- 분할 화면: 한 창을 나눈 각각의 작업 영역이야.
명령을 시작하는 접두 키
기본 접두 키는 Ctrl+B야. 접두 키를 누른 뒤 다음 키를 입력해 tmux 명령을 실행해. GNU Screen에 익숙하다면 set -g prefix C-a; unbind C-b를 ~/.tmux.conf에 넣어 바꿀 수 있지만, 원격 장비마다 현재 설정을 먼저 확인해.
매일 쓰는 명령
tmux new -s work: work라는 새 세션을 만들어.Ctrl+B d: 현재 클라이언트를 떼고 세션은 계속 실행해.tmux ls: 세션 목록을 보여 줘.tmux attach -t work: work 세션에 다시 붙어.Ctrl+B c: 새 창을 만들어.Ctrl+B n/p: 다음 창이나 이전 창으로 이동해.Ctrl+B 0..9: 번호로 창을 골라.Ctrl+B %/Ctrl+B ": 화면을 세로 또는 가로로 나눠.Ctrl+B 화살표: 분할 화면 사이를 이동해.Ctrl+B z: 현재 분할 화면을 확대하거나 원래대로 돌려.Ctrl+B [: 복사 모드에서 스크롤하고 검색해.
개발 환경의 배치를 저장하기
tmuxinator나 smug은 이름 있는 세션 배치를 저장하고 복원해. tmux-resurrect는 재부팅 뒤 세션 구성을 복원하는 데 도움을 줘. 다만 메모리의 프로세스 상태 자체가 영구 저장된다는 뜻은 아니야.
터미널 세션은 백업이 아니야
tmux는 클라이언트 연결이 끊겼을 때 프로세스 트리를 유지하지만 호스트 장애, 재부팅, 데이터 삭제까지 막아 주지 않아. 결과는 별도 저장소에 남기고, 무인 재시작과 상태 보고가 필요한 작업은 서비스 매니저에 맡겨.
공유 세션에는 권한 경계가 있어
세션에 붙을 수 있는 사용자는 화면을 보고 명령을 입력하며 그 안의 접근 권한을 이용할 수 있어. 소켓 권한과 사용자를 제한하고, 스크롤 기록에 비밀 값을 남기지 마.