서버에서 중요한 작업을 수행하던 도중 터미널이 갑자기 끊긴 경험이 있는가?
얼마 전npm install
을 실행하고 한참을 기다렸는데, CPU 사용량이 치솟더니 SSH 세션이 강제 종료되어 터미널 접속이 끊겨버렸다.
다시 접속해 보니 작업이 중단되어 있었고, 처음부터 다시 시작해야 하는 상황이었다.
이러한 예상치 못한 터미널 종료는 단순한 불편을 넘어 시간과 생산성에도 큰 영향을 미친다.
하지만 이 문제를 해결할 방법이 있다. tmux를 사용하면 터미널 세션을 유지하면서 안정적으로 작업을 수행할 수 있다.
인터넷 연결이 불안정하여 SSH 연결이 강제 종료되는 경우
터미널을 실수로 닫았을 때
네트워크 환경이 바뀌거나 VPN이 끊어질 때
npm install
과 같은 높은 리소스를 요구하는 작업이 서버에서 실행 중일 때
장시간 유지해야 하는 작업 도중 터미널이 자동으로 종료될 때
이러한 문제를 해결하기 위해 tmux를 사용하면 SSH 세션이 끊겨도 터미널 작업이 계속 실행된다.
tmux는 하나의 터미널 내에서 여러 개의 세션을 관리할 수 있는 터미널 멀티플렉서이다. 이를 통해 SSH 세션이 종료되더라도 실행 중인 프로세스를 유지할 수 있다.
대부분의 리눅스 배포판에서 tmux를 쉽게 설치할 수 있다.
# Ubuntu / Debian
sudo apt update && sudo apt install tmux
# CentOS / RHEL
sudo yum install tmux
# macOS (Homebrew 사용 시)
brew install tmux
tmux
위 명령어를 입력하면 새로운 tmux 세션이 시작된다.
Ctrl + b, d
위 단축키를 누르면 현재 tmux 세션에서 빠져나오면서 세션을 백그라운드에서 유지할 수 있다.
tmux attach -t 0 # 세션 번호가 0일 경우
만약 여러 개의 세션이 있을 경우 세션 목록을 확인 후 접속하면 된다.
tmux list-sessions # 실행 중인 세션 목록 확인
tmux attach -t <세션명>
세션이 더 이상 필요 없다면 종료할 수 있다.
exit # tmux 세션 내에서 실행
또는, Ctrl + b, x
를 눌러서 창을 종료할 수도 있다.
tmux new -s install-session
npm install # 패키지 설치 실행
Ctrl + b, d # 세션 분리
이렇게 하면 SSH 세션이 끊겨도 npm install
이 계속 실행된다.
새 창 만들기: Ctrl + b, c
창 간 이동: Ctrl + b, n
(다음 창), Ctrl + b, p
(이전 창)
창 삭제: Ctrl + b, &
tmux를 활용하면 SSH 연결이 끊겨도 작업이 지속되므로 서버 관리가 훨씬 안정적이고 편리해진다.
중요한 작업을 수행할 때마다 tmux 세션을 생성하고, 필요할 때 다시 접속하는 습관을 들이면 서버 운영이 더욱 원활해질 것이다.
이제 tmux를 사용하여 SSH 세션 종료 걱정 없이 리눅스 서버를 효율적으로 관리해보자!