使用 Linux 的 screen 命令
在 SSH 遠程主機上執行需要漫長等待的任務時, 如果網絡突然終止了, 那麼SSH 會話會結束, 任務也會被中斷, 而 screen 命令可以解決這個問題
簡介
screen 可以新建 screen 會話, 在這個會話中可以打開終端, 即使斷開連接, 終端中的任務還會在後臺運行
安裝 Linux GNU Screen
很多 Linux 發行版會預安裝 screen, 可以檢查其版本
$ screen -version
輸出:
Screen version 4.06.02 (GNU) 23-Oct-17
基於 Ubuntu and Debian
$ sudo apt install screen
基於 CentOS and Fedora
$ sudo yum install screen
開始使用 Linux Screen
新建 screen 會話
$ screen
可以指定名稱
$ screen -S session_name
這將會打開一個 screen 會話, 一個新的 shell
分離 Screen 會話
新建名爲 sleep 的會話
screen -S sleep
在新建的會話中執行命令, 睡眠 5 分鐘, 模擬需要長時間等待的任務
sleep 300
組合鍵 Ctrl+A+D 讓命令在後臺運行並退出 Screen 會話
輸出
[detached from 12728.sleep]
列舉 Screen 會話
分離後, 在主會話中使用
screen -ls
輸出
There is a screen on:
12728.sleep (05/03/2020 05:36:14 PM) (Detached)
1 Socket in /run/screen/S-jianghuixin.
回到 Screen 會話
使用名稱
screen -r sleep
使用進程號
screen -r 12728
結束 Screen 會話
回到 Screen 會話後, Ctrl+C 中斷正在運行的任務, 然後 exit 或 Ctrl+D
輸出
[screen is terminating]