利用 Screen 保持 VSCode 連線遠端任務持續執行

一只通信仔發表於2024-11-09

在 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

相關文章