在 Linux 上使用 screen
是一種保持程序持續執行的便捷方式,即使使用者斷開 SSH 連線,程序也不會中斷。
我在使用VSCode連線AutoDL時,不知道如何能夠使程序保持執行,後查閱資料可以使用screen命令完成該需求。
連線遠端伺服器
首先使用VSCode或者PyCharm連線到遠端伺服器
啟動一個新的 screen
會話
screen -S mysession
-S mysession
:為這個會話命名為 mysession
,方便後續管理。
在 screen
會話中啟動你的程式
啟動會話後,你可以執行任何想要保持執行的程式,例如:
python train.py
分離 screen
會話(保持程序執行)
按下以下組合鍵來分離 screen
會話,但不會終止執行的程式:
Ctrl + A, 然後按 D
-
Ctrl + A
:這是screen
的命令字首。 -
D
:表示分離(detach)。
檢視當前所有 screen
會話
screen -ls
輸出示例:這裡的7171是會話ID,mysession是會話名
There is a screen on:
7171.mysession (11/09/2024 08:39:43 PM) (Detached)
1 Socket in /run/screen/S-root.
恢復(重新連線)到 screen
會話
使用 screen -r <會話名或ID>
來終止會話。
# 根據會話名
screen -r mysession
# 或根據會話 ID
screen -r 7171
如果你只啟動了一個 screen
會話,也可以直接使用:
screen -r
終止指定screen
會話
使用 screen -X -S <會話名或ID> quit
來終止會話。
# 根據會話名
screen -X -S mysession quit
# 或根據會話 ID
screen -X -S 7171 quit
使用 kill
命令殺掉會話程序,kill ID
# 殺掉程序
kill 7171