Linux

將程序置於後台而不停止 - (ctrl+z)?

  • March 1, 2020

如果我通過在命令行中正常輸入來啟動一個程序,例如

wget http://site.com/bigfile.zip

然後決定我想把它移到後台,我知道我可以使用類似ctrl+z然後bg 1(或者jobs首先如果需要獲取 id)將它放在後台。

我的問題是,是否有辦法將工作從前台直接移動到後台而不停止它——就像除此之外ctrl+z的另一個捷徑一樣。

我也意識到我可以附加&到原始命令的末尾以在後台啟動它,但問題是你何時在前台啟動一個程序然後意識到你想將它移動到後台。

是的,絕對是:screen(1)就是答案。

要開始,請添加screen -R到 ~/.bash_profile 或等效項,註銷,然後重新登錄。

要繼續在後台執行的內容,請按 Control-A,然後按 N。這將在前台創建一個新的終端螢幕,同時在後台無縫繼續執行程序。

按 Control-A 然後 " 獲取您已打開的螢幕的互動式列表,或按 Control-A 然後按數字直接切換到特定螢幕。

您最初的要求是能夠將程序移動到後台而不停止它。Screen 有兩個額外的好處,如果你喜歡同時做多件事情,這些好處是巨大的:

  1. 與使用 Control-Z、bg、fg 等相比,您可以更流暢地在程序之間切換。
  2. 如果您的終端會話斷開連接,您的程序(如wget http://example.com/bigfile.iso)將不會終止!當您重新連接時,您所有的 shell 會話都將在那裡等著您。

有關更多資訊,請閱讀screen(1) 聯機幫助頁GNU Screen Manual

引用自:https://serverfault.com/questions/317508