終端斷開,任務不斷

夢共裡醉發表於2019-07-29

其實是很常見的需求,但之前一直用"nohup command &"這種方式。

不過有些時候沒有充分估計到某些工作的不靠譜性,以為很快能搞定的事,就沒用nohup直接執行,當你快要下班了它還遙遙無期。這個時候也可以先ctrl + z從前臺掛起,然後bg讓它跑到後臺去執行,最後再來一個disown -a,這樣就可以放心關了終端早點回家了。下次再用其他終端連線上來之後你的工作仍會在持續執行,但是這時候是不能用fg這樣的命令讓它再回到前臺執行的,jobs也不會顯示它。

如果你想持續看到後臺程式的輸出,以前的辦法就是在執行之前就將它重定向到一個檔案,後續回來檢視檔案即可。但如果程式已經開始執行了,再去重定向就稍微費點勁。網上有些用gdb調的方法,我試了試不是太成功,本來打算繼續看看,結果發現還是老老實實用screen靠譜一點…

其實screen這個命令應該不是什麼新鮮玩意了,也有很多人在使用。不過對我來說還是一個挺有新意的發現。我的一般套路:
新建一個screen並命名為ftp:

screen -S ftp

此時會直接進入新的bash,這裡搞一些耗時的操作,例如scp等等。
從ftp退回,用快捷鍵ctrl+a d.
這個時候其實就可以關閉當前終端了。新開啟一個終端,檢視現有screen列表:

screen -ls

看看上傳得怎麼樣了:

screen -r ftp

不但scp的工作沒有中斷,還可以看到scp當前所有輸出,和之前的終端沒有關閉一樣。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2652015/,如需轉載,請註明出處,否則將追究法律責任。

相關文章