screen — 終端機多工與持久化會話
建立可持久化的終端機多工會話,SSH 斷線後程序仍繼續執行。
語法
screen [選項] [指令]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
(無參數) |
建立新的 screen 會話 | screen |
-S 名稱 |
建立有命名的會話 | screen -S mywork |
-r [名稱] |
重新連接到之前的會話 | screen -r mywork |
-ls |
列出所有 screen 會話 | screen -ls |
-d -r 名稱 |
從其他終端機強制 detach 並重新連接 | screen -d -r mywork |
-X -S 名稱 quit |
終止指定名稱的 screen 會話 | screen -X -S mywork quit |
使用範例
範例 1:screen 常用快捷鍵
在 screen 中,所有快捷鍵都以 Ctrl+A 為前綴: Ctrl+A d — Detach(脫離但不停止) Ctrl+A c — 建立新視窗 Ctrl+A n — 下一個視窗 Ctrl+A p — 上一個視窗 Ctrl+A " — 列出所有視窗 Ctrl+A k — 關閉當前視窗
$ # 在 screen 中按 Ctrl+A,再按 d 脫離
[detached from 1234.mywork]
範例 2:建立命名會話
建立有名稱的 screen 會話,方便之後用名稱重新連接。
$ screen -S deploy
(進入 screen 環境,Ctrl+A d 脫離)
範例 3:列出並重新連接
列出所有 screen 會話,再根據名稱重新連接。
$ screen -ls
screen -r deploy
There is a screen on:
1234.deploy (Detached)
1 Socket in /run/screen/S-user.
常見錯誤與排錯
There is no screen to be resumed.
- 原因
- 沒有可連接的 screen 會話,或名稱有誤。
- 解法
- 用 screen -ls 查看所有會話,確認名稱後再用 screen -r 名稱 連接。