Câu trả lời:
Tìm thấy câu trả lời này trên serverfault từ bá tước :
Tuy nhiên, đối với vấn đề thực tế của bạn, có một điều khác bạn có thể thử: sau khi đã khởi động công việc của mình từ thiết bị đầu cuối, hãy làm nền bằng cách gõ ctrl - z và sau đó
bg
.
Sau đó, tách công việc ra khỏi vỏ cha mẹ - trongbash
:disown -h %<jobid>
. Sau đó, bạn có thể đóng thiết bị đầu cuối một cách an toàn và công việc sẽ tiếp tục chạy.
Và câu hỏi này từ cùng một câu hỏi từ Rob Wells :
$ screen -S my_process
$ retty $(pgrep my_process)
/redraw
Tìm thấy một bản sao trong Lỗi máy chủ .
Một giải pháp khác không được tìm thấy trong bài viết đó là sử dụng retty sau khi bắt đầu một phiên màn hình.
Có một cái nhìn reptyr , mà chính xác là như vậy. Trang github có tất cả các thông tin.
reptyr - Một công cụ để "ptying"
các chương trình.
reptyr là một tiện ích để dùng chương trình đang chạy và đính kèm nó đến một thiết bị đầu cuối mới. Bắt đầu một quá trình dài qua ssh, nhưng phải rời đi và không muốn làm gián đoạn nó? Chỉ cần bắt đầu một màn hình, sử dụng reptyr để lấy nó, và sau đó giết phiên ssh và đầu về nhà.
SỬ DỤNG
reptyr PID
"Reptyr PID" sẽ lấy quy trình với id id và đính kèm nó vào thiết bị đầu cuối hiện tại.
Sau khi đính kèm, quá trình sẽ mất nhập từ và ghi đầu ra sang mới thiết bị đầu cuối, bao gồm ^ C và ^ Z. (Thật không may, nếu bạn làm nền cho nó, bạn vẫn sẽ phải chạy "bg" hoặc "fg" trong thiết bị đầu cuối cũ. Đây là có khả năng không thể sửa chữa trong một cách hợp lý mà không cần vá vỏ.)