Lệnh màn hình Linux: Giữ cho các tiến trình chạy mặc dù kết nối bị ngắt

theanh

Administrator
Nhân viên
Tôi đoán là tất cả các bạn đều biết điều này: bạn được kết nối với máy chủ của mình bằng SSH và đang trong quá trình biên dịch một số phần mềm (ví dụ như một hạt nhân mới) hoặc thực hiện một số tác vụ khác tốn nhiều thời gian, và đột nhiên kết nối của bạn bị ngắt vì một lý do nào đó, và bạn mất công việc còn dang dở. Điều này có thể rất khó chịu, nhưng may mắn thay, có một tiện ích nhỏ có tên là screen cho phép bạn kết nối lại với phiên trước đó để bạn có thể hoàn thành tác vụ của mình. Hướng dẫn ngắn này sẽ chỉ cho bạn cách sử dụng screen cho mục đích này.

1 Cài đặt lệnh screen​

Việc cài đặt screen rất dễ dàng. Trên Debian, hãy chạy:
Mã:
apt-get install screen
Đối với Ubuntu, hãy sử dụng lệnh với sudo:
Mã:
sudo apt-get install screen
Và đối với Fedora, CentOS, SuSE và Mandriva cũng có các gói screen mà bạn có thể cài đặt với yum/yast/urpmi/...

Fedora và CentOS
Mã:
yum install screen

2 Sử dụng lệnh screen​

Với screen, bạn có thể tạo một hoặc nhiều phiên trong thiết bị đầu cuối SSH hiện tại của mình. Chỉ cần chạy
Mã:
screen
để bắt đầu. Thao tác này sẽ tạo ra một phiên hoặc cửa sổ màn hình (mặc dù bạn không nhìn thấy nó như vậy) trong thiết bị đầu cuối SSH hiện tại của bạn:



Nhấn Phím cách hoặc Return để đến dấu nhắc lệnh:



Trông giống như thiết bị đầu cuối SSH thông thường của bạn, phải không?

Bây giờ tôi sẽ mô tả các lệnh màn hình quan trọng nhất mà bạn cần để điều khiển màn hình. Các lệnh này bắt đầu bằng CTRL a để phân biệt chúng với các lệnh shell thông thường.
  • Ctrl a c - Tạo một phiên screen mới để bạn có thể sử dụng nhiều phiên screen cùng một lúc.
  • Ctrl a n - Chuyển sang phiên next screen (nếu bạn sử dụng nhiều phiên).
  • Ctrl a p - Chuyển sang phiên pprevious screen (nếu bạn sử dụng nhiều phiên).
  • Ctrl a d - Tách một phiên screen (mà không giết các quy trình trong đó - chúng vẫn tiếp tục).
Để đóng một phiên screen khi tất cả các tác vụ đã hoàn tất, bạn có thể nhập
Mã:
exit
Bây giờ chúng ta hãy thử nghiệm một chút. Trong cửa sổ màn hình của chúng ta, chúng ta chạy lệnh
Mã:
top
Lệnh này sẽ trông như thế này:



Bây giờ chúng ta hãy tạo một phiên màn hình khác bằng cách nhập
Mã:
Ctrl a c
Một phiên màn hình mới, trống sẽ mở ra và chúng ta chạy
Mã:
tail -f /var/log/mail.log
ở đó chúng ta có thể xem liên tục nhật ký thư của mình:



Bây giờ bạn có thể duyệt qua hai phiên màn hình của mình bằng cách chạy
Mã:
Ctrl a n
hoặc
Mã:
Ctrl a p
Để tách một màn hình phiên và quay lại thiết bị đầu cuối SSH thông thường của bạn, hãy nhập
Mã:
Ctrl a d
Quay lại thiết bị đầu cuối SSH thông thường của bạn, bạn có thể chạy
Mã:
screen -ls
để lấy danh sách các phiên screen hiện tại của bạn:
Mã:
Có các màn hình trên:
2477.pts-0.server1(Detached)
2522.pts-0.server1(Detached)
2 Socket trong /var/run/screen/S-root.
Để kết nối lại với một trong các phiên này, hãy chạy
Mã:
screen -r 2477.pts-0.server1
trong đó 2477.pts-0.server1 là tên của một trong các phiên từ đầu ra screen -ls.

Để thoát và kết thúc phiên screen, hoàn tất tất cả các tác vụ hiện tại trong đó (top có thể hoàn tất bằng cách nhập q, tail -f /var/log/mail.log có thể hoàn tất bằng cách nhập CTRL c) rồi nhập
Mã:
exit
Sau đó, bạn sẽ quay lại phiên screen khác (nếu bạn sử dụng nhiều phiên) hoặc về thiết bị đầu cuối SSH thông thường, nếu không còn phiên screen nào đang mở nữa.

Nếu bạn muốn tìm hiểu thêm về screen, hãy chạy
Mã:
man screen

3 Kết nối của tôi bị mất - Tôi có thể làm gì?​

Bây giờ hãy giả sử bạn biên dịch một hạt nhân trong phiên screen, một việc thường mất nhiều thời gian và đột nhiên kết nối của bạn bị mất. Nhờ screen, công việc của bạn không bị mất. Sau khi kết nối của bạn được khôi phục, hãy đăng nhập lại vào hệ thống của bạn bằng SSH và chạy
Mã:
screen -ls
như được hiển thị trong chương 2. Từ kết quả, hãy chọn một phiên (ví dụ: 2477.pts-0.server1) và gắn lại vào phiên đó:
Mã:
screen -r 2477.pts-0.server1
Nếu bạn chọn đúng phiên, bạn sẽ thấy hạt nhân của mình vẫn đang biên dịch (nếu nó chưa hoàn tất trong thời gian đó) để bạn có thể tiếp tục công việc của mình.

4 Liên kết​

 
Back
Bên trên