Tình huống đặt ra như sau: Bạn đang ssh vào một server linux và chạy các process trên đó. Các process đang chạy mất rất nhiều thời gian để complete (vài ngày, thậm chí hàng tuần), vậy làm thế nào chúng ta có thể đóng session ssh đến server mà vẫn biết trạng thái các process chạy đến đâu rồi, hoặc bạn để máy không thao tác quá lâu session cũng bị đóng do time out.
Nếu ssh, sau đó thao tác trên cửa sổ command thông thường, một số trường hợp process sẽ bị kill khi session bị đóng
Câu trả lời ở đây là dùng lệnh screen trên linux (gõ screen linux tutorial vào google để xem chi tiết)
Một số lệnh thông thường với screen
1. screen Vào chế độ screen (sau khi gõ lệnh này, có cảm giác như không thay đổi gì nhưng thực tế bạn đang thao tác trên screen window chứ không phải command window), các lệnh linux vẫn thực hiện bình thường
2. ctr-a + c Mở một screen mới (khi đó chúng ta có một list các screen)
3. ctr-a + n Chuyển đến screen tiếp theo
4. ctr-a + p Chuyển đến screen trước đó
5. ctr-a + d Đóng screen window, process trên server vẫn chạy bình thường (đây là chức năng chúng ta cần, còn gọi là detach screen)
6. ctr-a + K Đóng screen window, kill các process đang chạy trên screen này (chú ý chỉ nên dùng chức năng này khi process đã complete, còn gọi là kill screen)
Vấn đề là sau khi detach screen và đóng session tới server, một thời điểm khác chúng ta lại ssh tới server, làm sao để theo dõi lại những process nào đang được chạy?
7. screen -ls Liệt kê tất cả các screen đang detach
8. screen -r tên screen Re-attach vào screen có tên trên
Không có nhận xét nào:
Đăng nhận xét