You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

VS Code远程SSH开发:断开连接后如何保持进程持续运行?

解决VS Code远程SSH开发断开连接后进程终止的问题

我完全懂你的痛点——远程跑Python脚本时,就怕临时断个网或者关了VS Code,进程直接凉了,之前折腾tmux还踩了坑,确实闹心。结合你的情况,给你几个靠谱的解决方案:

一、正确配置tmux,彻底解决会话持久化问题

你之前用tmux没成功,大概率是VS Code和tmux的衔接没做好,试试这套标准配置:

  • 先在Ubuntu Server上确保tmux已安装:sudo apt update && sudo apt install tmux
  • 打开VS Code的设置(快捷键Ctrl+,),搜索terminal.integrated.defaultProfile.linux,把默认终端改成tmux
  • 之后启动Python脚本时,直接在这个tmux终端里运行python3 your_script.py就行
  • 断开SSH连接后,tmux会在后台稳稳保持会话,下次重新连接VS Code,打开终端输入tmux attach就能回到之前的界面,进程还在跑

针对你遇到的「终端进程启动失败」问题,再加个配置:在VS Code的远程设置里(左下角点击远程图标→打开远程设置),添加一行:

"terminal.integrated.shellArgs.linux": ["-c", "tmux attach || tmux new"]

这样每次打开终端都会自动尝试连接已有tmux会话,没有的话就新建一个,能有效避免启动失败的情况。

二、用nohup后台运行(适合无交互脚本)

如果你的Python脚本不需要实时输入交互,nohup是个更轻量的选择:

  • 启动命令改成:nohup python3 your_script.py &
  • 这个命令会让进程忽略SSH断开的挂起信号,后台持续运行,输出默认写到当前目录的nohup.out文件里,想看日志直接cat nohup.out就行
  • 要终止进程的话,先用ps aux | grep your_script.py找到进程ID(PID),再用kill <PID>结束它

三、优化SSH连接,减少断开概率

有时候断开是因为SSH会话超时被服务器踢掉,你可以在本地的~/.ssh/config文件里加几句配置:

Host your-ubuntu-server-name
  ServerAliveInterval 60
  ServerAliveCountMax 10

意思是本地每隔60秒给服务器发一个心跳包,连续10次没收到回应才断开,能大幅降低意外断开的概率。

总的来说,tmux是最适合远程开发的方案,既能保留终端交互,又能持久化进程,按上面的配置调整后,应该能解决你之前遇到的所有问题。

内容的提问来源于stack exchange,提问作者MikeB2019x

火山引擎 最新活动