如果SSH被中斷,Linux screen工具如何拯救你的任務(wù)以及理智
當(dāng)你需要確保長時間運(yùn)行的任務(wù)不會在 SSH 會話中斷時被殺死時,Linux screen 命令可以成為救生員。以下是使用方法。
如果因 SSH 會話斷開而不得不重啟一個耗時的進(jìn)程,那么你可能會很高興了解一個有趣的工具,可以用來避免此問題:screen 工具。
screen 是一個終端多路復(fù)用器,它使你可以在單個 SSH 會話中運(yùn)行多個終端會話,并隨時從它們之中脫離或重新接駁。做到這一點的過程非常簡單,僅涉及少數(shù)命令。
要啟動 screen 會話,只需在 SSH 會話中鍵入 screen。 然后,你可以開始啟動需要長時間運(yùn)行的進(jìn)程,并在適當(dāng)?shù)臅r候鍵入 Ctrl + A Ctrl + D 從會話中脫離,然后鍵入 screen -r 重新接駁。
如果你要運(yùn)行多個 screen 會話,更好的選擇是為每個會話指定一個有意義的名稱,以幫助你記住正在處理的任務(wù)。使用這種方法,你可以在啟動每個會話時使用如下命令命名:
$ screen -S slow-build
一旦運(yùn)行了多個會話,要重新接駁到一個會話,需要從列表中選擇它。在以下命令中,我們列出了當(dāng)前正在運(yùn)行的會話,然后再重新接駁其中一個。請注意,一開始這兩個會話都被標(biāo)記為已脫離。
$ screen -lsThere are screens on:6617.check-backups (09/26/2019 04:35:30 PM) (Detached)1946.slow-build (09/26/2019 02:51:50 PM) (Detached)2 Sockets in /run/screen/S-shs
然后,重新接駁到該會話要求你提供分配給會話的名稱。例如:
$ screen -r slow-build
在脫離的會話中,保持運(yùn)行狀態(tài)的進(jìn)程會繼續(xù)進(jìn)行處理,而你可以執(zhí)行其他工作。如果你使用這些 screen 會話之一來查詢 screen 會話情況,可以看到當(dāng)前重新接駁的會話再次顯示為 Attached。
$ screen -lsThere are screens on:6617.check-backups (09/26/2019 04:35:30 PM) (Attached)1946.slow-build (09/26/2019 02:51:50 PM) (Detached)2 Sockets in /run/screen/S-shs.
你可以使用 -version 選項查詢正在運(yùn)行的 screen 版本。
$ screen -versionScreen version 4.06.02 (GNU) 23-Oct-17
安裝 screen
如果 which screen 未在屏幕上提供信息,則可能你的系統(tǒng)上未安裝該工具。
$ which screen/usr/bin/screen
如果你需要安裝它,則以下命令之一可能適合你的系統(tǒng):
sudo apt install screensudo yum install screen
當(dāng)你需要運(yùn)行耗時的進(jìn)程時,如果你的 SSH 會話由于某種原因斷開連接,則可能會中斷這個耗時的進(jìn)程,那么 screen 工具就會派上用場。而且,如你所見,它非常易于使用和管理。
以下是上面使用的命令的摘要:
screen -S <process description> 開始會話Ctrl+A Ctrl+D 從會話中脫離screen -ls 列出會話screen -r <process description> 重新接駁會話
盡管還有更多關(guān)于 screen 的知識,包括可以在 screen 會話之間進(jìn)行操作的其他方式,但這已經(jīng)足夠幫助你開始使用這個便捷的工具了。 















 
 
 







 
 
 
 