恢复终端会话

OrcaTerm 允许您创建托管会话,实现会话持久化与多任务并行处理。在启动耗时任务(如大数据备份、渲染作业、模型训练)时,即使关闭终端、断网或退出客户端,任务仍可在服务器内持续运行;重新进入后可继续查看任务执行状态或进一步操作。

会话恢复基于 Tmux(Terminal Multiplexer)实现,OrcaTerm 负责在服务器上自动安装、创建、进入与关闭 Tmux 托管会话,无需您手动操作 Tmux 命令。

Important

会话恢复仅支持 Shell 终端(SSH / TAT),Windows 远程桌面(RDP)、Windows 系统实例、本地终端不支持。

前置条件

  • 已通过 SSH 或 TAT 连接方式登录 Linux 服务器,详情请参见 创建第一个连接。
  • 已安装 会话恢复 增强功能脚本(安装方式见下文)。

安装会话恢复

会话恢复作为增强功能的一项,安装流程与其它增强功能一致。请参考 安装增强功能 完成安装,在功能勾选步骤中勾选 会话恢复 即可。

安装入口:

  • 在终端内任意位置右键,选择 增强功能 > 安装。

Note

安装成功后右下角会弹出提示。如后续需要更新或卸载,请参考 更新卸载增强功能 的更新与卸载流程。

使用会话恢复

安装增强功能后,您需要创建一个托管会话来实现会话恢复的能力。

  1. 通过 SSH 或 TAT 连接方式登录服务器后,在顶部菜单栏找到会话恢复的图标,单击 新建并进入托管会话。

  2. 在 新建托管会话 弹窗中输入会话名称后,单击 新建并进入会话。

  3. 新建完成后,将自动把当前终端的会话切换到托管会话中。后续在托管会话中执行的任务,即使出现本地电脑断网或退出终端等原因,托管会话仍然会被保留,会话中正在执行的任务不会中断,您可以重新进入会话继续查看任务执行状态或进一步操作。

    说明:

    在托管会话中如果要选择复制终端内容,可以按住 Alt(Windows)/ Option(Mac)按钮 + 鼠标左键选择目标内容后,再执行复制操作。

  4. 在托管会话中运行 ping 命令,然后关闭终端。

  5. 您重新进入 OrcaTerm 控制台,并登录前序步骤中创建托管会话的服务器后,可以在管理托管会话界面查看、进入或关闭已存在的托管会话。

  6. 在托管会话列表中选择想要进入的会话,单击 进入会话。

    进入托管会话后,如下图所示,会话中执行的 ping 任务并没有因为退出终端而中断,重新进入后继续展示任务当前的执行结果。

关闭托管会话

如果要关闭已有的托管会话,您可在管理托管会话界面单击 关闭会话。

  1. 通过 SSH 或 TAT 连接方式登录服务器后,在顶部菜单栏找到会话恢复的图标。

  2. 在托管会话列表中选择想要关闭的会话,单击 删除会话。

    注意:

    关闭会话后,会话中正在执行的任务也会被终止。

工作原理

会话恢复基于 Tmux 实现,OrcaTerm 在服务器上自动完成 Tmux 会话的创建、进入(attach)与分离(detach):

操作客户端行为
新建托管会话在服务器上创建一个新的 Tmux 会话并 attach 进入,会话名由用户指定。
进入会话attach 到已存在的 Tmux 会话,恢复其终端画面与运行状态。
关闭 / 删除会话kill 对应的 Tmux 会话,会话中的任务随之终止。
断网 / 关闭终端Tmux 会话在服务器端继续运行,任务不受影响;重新进入时重新 attach。

Note

  • Tmux 会话运行在服务器端,与本地客户端的生命周期解耦,因此关闭本地终端或断网不会影响会话。
  • 多个终端可同时进入同一托管会话(共享会话),适合多人协作或异地查看同一会话。

在托管会话中选择与复制

Tmux 默认开启鼠标模式(mouse mode),鼠标左键会被 Tmux 接管用于切分窗口、选择 pane 等,无法直接选中文本复制。OrcaTerm 通过临时切换鼠标模式解决此问题:

  1. 按下并保持 Alt(Windows)/ Option(Mac):客户端向终端发送 \x1b[?1000l,临时关闭鼠标模式,鼠标左键交由 xterm.js 接管,可正常选中文本。
  2. 释放 Alt / Option:选中内容后释放修饰键,执行复制操作。
  3. 自动恢复:松开修饰键后首次点击、或滚动滚轮时,客户端自动发送 \x1b[?1000h 恢复鼠标模式,将鼠标操作交还 Tmux。

Tip

  • 该选择模式仅在进入托管会话(Tmux active)时启用,退出托管会话后自动注销,不影响普通终端的选择。
  • 使用该功能时需按住 Alt / Option 再用鼠标左键拖选,松开修饰键后再复制。

卸载会话恢复

如需卸载会话恢复能力,请参考 安装增强功能 的卸载流程,在功能勾选步骤中选择 会话恢复。

注意:

如果您在卸载会话恢复能力时,还有未关闭的会话,需要首先关闭会话后再卸载。

常见问题

关闭终端后任务是否还在运行?

是的。托管会话基于 Tmux 运行在服务器端,关闭本地终端、断网或退出客户端只会断开本地与服务器之间的连接,Tmux 会话及其中的任务仍在服务器上继续运行。重新进入会话即可恢复。

普通会话(非托管会话)关闭后任务会保留吗?

不会。只有在 托管会话 中执行的任务才会持久化。在普通终端会话中执行的命令,关闭终端后会话随之结束,任务会被终止(除非任务本身通过 nohup / screen 等方式脱离终端)。

托管会话中无法选中文本复制

  • 确认已按住 Alt(Windows)/ Option(Mac)键后再用鼠标左键拖选。
  • 释放修饰键后首次点击会自动恢复 Tmux 鼠标模式,需重新按住修饰键再次选择。
  • 该选择模式仅在托管会话中启用,普通终端无需按修饰键即可选择。

重新进入会话后看不到之前的输出

  • Tmux 重新 attach 后会恢复会话的当前画面,但 attach 之前已滚出可视区域的历史输出可能需要通过 Tmux 的翻页(Ctrl+B 后 [ 进入 copy 模式翻页)查看。
  • 确认进入的是正确的托管会话(按会话名匹配),避免进入了其他同名会话。

创建托管会话失败

  • 确认已安装 会话恢复 增强功能脚本。
  • 确认服务器已安装 Tmux(安装脚本会自动检测并安装)。
  • 会话名称不能与已有托管会话重名,换个名称重试。
  • 服务器磁盘空间不足或权限异常可能导致 Tmux 启动失败,检查服务器状态。