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 名稱 連接。

延伸閱讀