好吧,我必須通過ssh
將我的家中的程序運行到我所在機構的服務器上。當會議結束時,我不希望我的程序被終止(我不知道screen
)。如何將孤立的後臺進程恢復到前臺?
我所做的是按Ctrl+Z
,然後鍵入bg
,以便它在後臺執行。 會話終止。現在,當我從我的機構登錄並鍵入ps -u username
時,它顯示該程序仍在運行,但我無法將其帶到前臺。
我試過fg
和jobs
但這些命令不給我任何輸出。
請別人幫我..
好吧,我必須通過ssh
將我的家中的程序運行到我所在機構的服務器上。當會議結束時,我不希望我的程序被終止(我不知道screen
)。如何將孤立的後臺進程恢復到前臺?
我所做的是按Ctrl+Z
,然後鍵入bg
,以便它在後臺執行。 會話終止。現在,當我從我的機構登錄並鍵入ps -u username
時,它顯示該程序仍在運行,但我無法將其帶到前臺。
我試過fg
和jobs
但這些命令不給我任何輸出。
請別人幫我..
如果你沒有使用「屏幕」命令啓動過程,那麼你不能接管該過程。基本上你不能接管一個在不同shell中啓動的進程。
當你的會話終止時,所有的bg進程都會進入分離狀態。雖然您可能能夠看到此過程的詳細信息,但您不能將它們登錄到殼體,然後再登錄
如果某個進程已孤立,則無法將其「重新」歸入不同的shell並使用fg,bg ,^ Z,^ C等等來控制它。
看來你隱含地問如何控制孤兒過程。由於您可以使用ps命令查看該進程,因此您有它的pid。您可以使用此pid作爲kill命令的參數,這將允許您停止,繼續或終止該進程。您不能等待該過程完成,但可以使用「kill -0 <pid>」命令輪詢以查看它是否仍然存在。
https://serverfault.com/questions/55880/moving-an-already-running-process-to-screen
給出關於這個問題的另一種觀點,頂部答案建議使用Reptyr。
來自其他帖子的簡短回答:這是可能的。安裝'reptyr',然後運行'reptyr [PID]' - 但如果一個進程(例如bash腳本)啓動另一個(子)進程,這可能不起作用。 – BurninLeo 2015-09-30 21:26:12