Bỏ qua để đến Nội dung

Detach from Terminal

29 tháng 10, 2025 bởi
Detach from Terminal
Hưng Nguyễn

Thỉnh thoảng khi chạy một số câu lệnh trong terminal, vòng đời của câu lệnh sẽ gắn với vòng đời của phiên SSH Terminal mà bạn đang sử dụng. Ví dụ như các câu lệnh:

  • docker run ...
  • minikube tunnel

Khi bạn thoát phiên SSH Terminal, vòng đời câu lệnh đang chạy cũng sẽ bị dừng hẳn luôn. Để tránh điều này, chúng ta có thể sử dụng screen, trình tạo terminal ảo giúp có thể chạy lệnh ở chế độ "detached", trở thành tiến trình chạy nền, hoặc có thể "reattached" (attach-lại), trở thành tiến trình chạy chính. Khi terminal ảo ở chế độ chạy nền, câu lệnh vẫn được chạy bất kể mình có log in hay không.

Cài screen:

  • Với MacOS:
brew install screen
  • Với Ubuntu/ Debian:
sudo apt-get install -y screen

Khi chạy 1 lệnh chiếm giữ Terminal (ví dụ minikube tunnel​). Thay vì chạy lệnh đó, ta chạy:

screen -S mini-tunnel minikube tunnel

Trong đó, đằng sau -S là tên mình đặt tùy ý cho terminal đó.

Sau khi chạy xong, lúc nào cần detach, mình bấm nút Ctrl + A, Ctrl + D.

Lúc nào cần attach lại, chạy lệnh:

screen -r mini-tunnel

Trong đó, đằng sau -r là tên của terminal (mà mình đã đặt trong câu lệnh trước đó).

P.S.: hiện có 1 cách mới hơn là dùng tmux​ - tôi chưa tìm hiểu, các bạn thích thì có thể tự search thêm nhé.


Detach from Terminal
Hưng Nguyễn 29 tháng 10, 2025
Chia sẻ bài này
Thẻ
Lưu trữ