如果 SSH 被中斷,Linux screen 工具如何拯救你的任務以及理智
當你需要確保長時間執行的任務不會在 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
會話之間進行操作的其他方式,但這已經足夠幫助你開始使用這個便捷的工具了。
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:wxy 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 如何使用screen解決ssh斷連訓練停止的問題
- Zeit – Linux圖形化中定時任務的工具Linux
- 在Linux中如何使用at命令安排任務Linux
- Linux中如何實現定時任務Linux
- 使用screen後臺執行任務
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- Linux 任務後臺執行軟體【即:終端複用器】之---screenLinux
- linux 定時任務替代大牛 工具 cronsunLinux
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- Linux系統中延時任務及定時任務Linux
- 如何在 Linux 中建立 SSH 別名Linux
- 如何用Linux的at命令安排一個任務Linux
- 如何使用Choerodon LDAP以及配置定時任務LDA
- 如何在Linux中加入cron任務Linux
- 終端斷開,任務不斷
- 如何在 Kali Linux 上安裝 SSH 服務Linux
- Flutter中如何取消任務Flutter
- 在Linux中,什麼是SSH?它是如何工作的?Linux
- 在Linux中,如何備份某個使用者的任務計劃?Linux
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- Linux screen命令Linux
- cmd 工具 ssh 保持連線不斷開
- 如果精確判斷一個IP是否被佔用
- 在Linux中如何登出其他 SSH 使用者Linux
- js中的巨集任務和微任務JS
- 如何不中斷連線保持linux伺服器持續執行 —— screen 使用介紹Linux伺服器
- 3 個 Linux 上的 SSH 圖形介面工具Linux
- 如何在 Linux 中配置基於金鑰認證的 SSHLinux
- Solaris Linux SSH緩慢診斷與解決Linux
- 【工具推薦】4款實用性超高的Linux ssh工具!Linux
- Linux 中 Laravel 任務排程不執行LinuxLaravel
- Linux 定時任務Linux
- Linux | 定時任務Linux
- 利用 Screen 保持 VSCode 連線遠端任務持續執行VSCode
- 探究如何在Zoho Projects中建立和管理任務和子任務Project
- 一款讓你的團隊任務變得高效又輕鬆的任務管理工具——「飛項」
- 拯救你的Go程式碼Go
- Linux任務的前後臺管理Linux