Post

[Linux] 원격 서버에서 딥러닝 학습: tmux 세팅하기

[Linux] 원격 서버에서 딥러닝 학습: tmux 세팅하기

🔵 Intro

원격 서버에 SSH로 접속해서 몇시간~ 며칠 동안 모델 학습을 경험하면서 SSH가 끊기면 학습도 종료된다는 것을 굉장히 늦게 깨달았다.

백그라운드에서 돌릴 수 있는 어떤 명령어가 존재하겠지 생각만 했는데 이참에 한 번 공부해보려고 포스팅을 하게 되었다.


⚪ 리눅스 tmux 이란?

  • tmux는 터미널 안에 또 다른 가상의 터미널 세션들을 만들고 관리하는 도구. 가장 큰 특징은 세션의 지속성(Persistence)
  • 즉, 사용자가 tmux 세션을 만들면, 그 세션은 사용자가 명시적으로 종료하지 않는 한 서버에서 계속 살아있게 된다.
  • 터미널을 닫거나 SSH 접속을 끊는 것은 그저 세션을 잠시 보지 않는 것일 뿐, 그 세션과 그 안에서 실행되는 프로그램은 영향 ❌

사용자가 tmux 세션을 만들면, 그 세션은 사용자가 명시적으로 종료하지 않는 한 서버에서 계속 살아있습니다. 터미널을 닫거나 SSH 접속을 끊는 것은 그저 그 세션을 ‘잠시 보지 않는 것’일 뿐


⚪ tmux 세팅하기

1
2
3
4
5
# 'exp-resnet50' 라는 이름의 세션을 생성
tmux new -s exp-resnet50

# 세션에서 코드를 실행함
python /home/soohyun/projects/mri_qsm/train.py --batch-size 64 --epochs 100

⚪ 세션에서 빠져나오고 싶을 땐? (Detach)

Ctrl + b 를 누르고 d

1
[detached (from session exp-resnet50)]

화면에 위 문구가 뜨면 성공


⚪ 세션에 다시 접속하기 (Attach)

1
2
3
4
5
# 현재 실행 중인 tmux 세션 목록 확인
tmux ls

# 아까 만들어 둔 세션에 다시 접속
tmux attach -t exp-resnet50

⚪ 세션 셧다운

  • exit 명령어
  • 또는 tmux kill-session -t [세션이름]

🟣 마치며

tmux는 딥러닝 연구자나 엔지니어에게 선택이 아닌 필수적인 생산성 도구임에는 확실하다.

그동안 바보같이 클라이언트 컴퓨터 ssh 세션이 닫힐까봐 전전긍긍했던 나 반성해~~

This post is licensed under CC BY 4.0 by the author.