VS Code 远程 ssh:如何让进程在断开连接后保持 运行 完成?

VS Code remote ssh: how to allow processes to keep running to completion after disconnect?

我正在使用 VS Code 通过 ssh 在 Ubuntu 服务器上进行远程 Python 开发。 VS Code 处理 ssh 连接。我从 IDE 启动进程。如果断开连接,即使是非常短暂的连接,进程也会被终止。

有没有办法阻止这种情况发生?我预计 VS Code 中会有一个设置,因为远程计算机上安装了一个 VS Code 服务器,但什么也没找到。

注意:我尝试了 Moreno here 推荐的程序,他使用 'tmux' 但是在 Linux 中没有成功,除非你使用 Faria 提供的 mod在评论区

更新:可以'break' Moreno 提出的解决方案。在长时间断开连接后,VS Code 开始返回 'The terminal process /home/.../code-shell failed to launch (exit code: 1)'。遵循建议的故障排除并没有解决问题。最终重新启动 VS Code,这是一个次优的解决方案。

如前所述,我在 SSH 进入的远程 Ubuntu 环境中使用 VS Code。如果您这样做,请按照 Moreno 概述的步骤进行操作(请参阅有问题的 link)但是因为我在 Linux 环境中工作,所以我不得不调整脚本中的某些项目。调整为:

  1. 确保在 'code-shell' 上设置文件权限,以便执行 是可能的。所以在我的例子中,我在 CLI 中做了 chmod a+x code-shell 允许任何人执行,但你可以做到 随心所欲;

  2. 使脚本中的 shebang 行使用 /usr/bin/env bash 这将选择第一个允许的 shell 您的环境将 允许。使用 /bin/bash 对我不起作用。

  3. 脚本的命名部分略有改动。我做到了 'vscode' 后跟 md5 和的前 3 个字符。这使得 新终端可区分。

适合我的最终脚本是:

所以整个过程是:在 VS Code 中设置 ssh 远程 -> 将工作区中的 VS Code 设置调整为 运行 修改终端 (code-shell) -> 创建 code-shell具有所需权限的脚本。如果断开连接 运行ning 进程将继续不间断。