保持进程在SSH客户端断开后仍继续运行的方法

使用SCREEN让客户端断开之后仍然执行命令。

安装

1
sudo apt-get install -y screen

使用

  1. 创建并进入新会话。
1
screen -S [Name]  # [Name]为自定义会话名称。
  1. 在新会话中执行目标任务。
  2. 分离会话。 同时按下Ctrl+A+D键,分离当前 screen 会话,此时进程在SSH客户端断开后仍可继续运行。
  3. 恢复会话。
    • 查看会话进程PID,用于后续恢复。
      1
      2
      3
      4
      5
      6
      sudo screen -ls

      # 输出:
      There is a screen on:
      2046.mytask (Detached)
      1 Socket in /run/screen/S-root.
      示例中screen会话进程PID为2046。
    • 恢复对后台任务的控制。
      1
      screen -r -d [PID]
  4. 注销会话。
    1
    kill [PID]