Sàng lọc một quá trình đang chạy


22

Đôi khi tôi quên chạy một chương trình dưới một phiên màn hình và không thể dừng chương trình ở giữa và tôi biết nó sẽ mất nhiều thời gian.

Có cách nào để sàng lọc một quá trình đã chạy mà không cần khởi động lại nó không?

Câu trả lời:


11

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ẹ - trong bash: 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


Có cách nào để đưa công việc trở lại không? 'màn hình' rồi 'fg 1' không hoạt động với tôi
Putnik

@Putnik - bạn đã làm các bước khác như được mô tả?
warren

7

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.


5
Tôi đã xóa câu trả lời của mình; bạn có thể (và nên) chấp nhận câu trả lời của riêng bạn sau 2 ngày. Vui lòng trích dẫn các phần có liên quan ở đây, vì các "bản sao" chéo trang thực sự không bị trùng lặp do các đối tượng khác nhau.
Jeff Atwood

4
Nhưng bạn đã không trích dẫn các phần có liên quan, theo đề nghị của Jeff. =)
David Thomas

5

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ỏ.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.