Linux中國

如果 SSH 被中斷,Linux screen 工具如何拯救你的任務以及理智

如果因 SSH 會話斷開而不得不重啟一個耗時的進程,那麼你可能會很高興了解一個有趣的工具,可以用來避免此問題:screen 工具。

screen 是一個終端多路復用器,它使你可以在單個 SSH 會話中運行多個終端會話,並隨時從它們之中脫離或重新接駁。做到這一點的過程非常簡單,僅涉及少數命令。

要啟動 screen 會話,只需在 SSH 會話中鍵入 screen。 然後,你可以開始啟動需要長時間運行的進程,並在適當的時候鍵入 Ctrl + A Ctrl + D 從會話中脫離,然後鍵入 screen -r 重新接駁。

如果你要運行多個 screen 會話,更好的選擇是為每個會話指定一個有意義的名稱,以幫助你記住正在處理的任務。使用這種方法,你可以在啟動每個會話時使用如下命令命名:

$ screen -S slow-build

一旦運行了多個會話,要重新接駁到一個會話,需要從列表中選擇它。在以下命令中,我們列出了當前正在運行的會話,然後再重新接駁其中一個。請注意,一開始這兩個會話都被標記為已脫離。

$ screen -ls
There 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

在脫離的會話中,保持運行狀態的進程會繼續進行處理,而你可以執行其他工作。如果你使用這些 screen 會話之一來查詢 screen 會話情況,可以看到當前重新接駁的會話再次顯示為 Attached

$ screen -ls
There 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 選項查詢正在運行的 screen 版本。

$ screen -version
Screen version 4.06.02 (GNU) 23-Oct-17

安裝 screen

如果 which screen 未在屏幕上提供信息,則可能你的系統上未安裝該工具。

$ which screen
/usr/bin/screen

如果你需要安裝它,則以下命令之一可能適合你的系統:

sudo apt install screen
sudo yum install screen

當你需要運行耗時的進程時,如果你的 SSH 會話由於某種原因斷開連接,則可能會中斷這個耗時的進程,那麼 screen 工具就會派上用場。而且,如你所見,它非常易於使用和管理。

以下是上面使用的命令的摘要:

screen -S <process description>      開始會話
Ctrl+A Ctrl+D                        從會話中脫離
screen -ls                           列出會話
screen -r <process description>      重新接駁會話

儘管還有更多關於 screen 的知識,包括可以在 screen 會話之間進行操作的其他方式,但這已經足夠幫助你開始使用這個便捷的工具了。

via: https://www.networkworld.com/article/3441777/how-the-linux-screen-tool-can-save-your-tasks-and-your-sanity-if-ssh-is-interrupted.html

作者:Sandra Henry-Stocker 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國