LabHub

vim 과 tmux · tmux 세션·창·패널 · 실습

tmux 세션과 윈도우

LabHub 에서 이어서 보기

목표

tmux 세션과 윈도우를 만들고, detach 상태를 확인하고, 설정 파일이 실제로 서버에 반영되는지 검증한 뒤, 개발 환경을 재현하는 스크립트를 만듭니다.

왜 중요한가

tmux 에서 명령을 실제로 실행하는 것은 내 터미널이 아니라 tmux 서버 프로세스입니다. 내 터미널은 그 화면을 받아 보는 클라이언트일 뿐입니다. SSH 가 끊기면 클라이언트가 사라지지만 서버와 그 자식들은 아무 영향을 받지 않습니다 - 그래서 다시 접속해 attach 하면 화면까지 그대로 돌아옵니다. nohup 과 결정적으로 다른 점이 이것입니다. nohup 은 작업을 살리지만 화면과 입력은 돌려주지 않습니다. 그리고 마지막 단계가 스크립트인 이유는, 손으로 만든 배치는 서버가 재부팅되면 사라지지만 스크립트는 남기 때문입니다.

단계

1. work 라는 이름의 세션을 만드세요.
2. work 세션에 윈도우를 추가해 총 3개 이상으로 만들고, 그중 하나의 이름을 logs 로 하세요.
3. work 세션의 0번 윈도우 이름을 edit 으로 바꾸세요.
4. work 세션에서 detach 하세요. 세션은 살아 있어야 하고 붙어 있는 클라이언트는 없어야 합니다.
5. deploy 세션을 붙지 않고 만들고, 그 안에 build 라는 이름의 윈도우가 있게 하세요.
6. /root/.tmux.conf 를 만들어 다음 네 가지를 설정하세요: prefix 를 C-a 로, 마우스 사용 on, 윈도우 인덱스 시작을 1 로, 페인 인덱스 시작을 1 로.
7. 아무 파일이나 만들어 work 세션의 logs 윈도우에서 tail -f 로 따라붙게 하세요. 채점 시점에 계속 실행 중이어야 합니다.
8. /root/tmux/session.sh <세션이름> 을 만드세요. 인자로 받은 이름의 세션을 붙지 않고 만들고, 그 안에 apidb 두 윈도우가 있어야 합니다. 같은 이름으로 두 번 실행해도 성공해야 하고 윈도우가 늘어나면 안 됩니다.

참고

단계 8개

  1. 첫 세션 만들기
  2. 윈도우 추가하고 이름 붙이기
  3. 0번 윈도우 이름 바꾸기
  4. 세션 떼어 놓기
  5. 붙지 않고 세션 만들기
  6. 설정 파일 만들기
  7. 장시간 프로세스를 세션에 두기
  8. 세션 부트스트랩 스크립트