You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode关闭后仍保持.ipynb文件后台持续运行?

核心原因

底部状态栏显示Jupyter: Server Remote只代表你给插件配过远程服务器地址,不代表你当前打开的notebook真的在用这个远程服务的内核。VS Code Jupyter插件默认优先拉起和当前窗口生命周期绑定的临时内核,关窗口时会自动回收这些临时内核的进程,这就是你关VS Code就显存清空的根本原因——你跑代码用的内核从一开始就不是你tmux里起的那个常驻Jupyter服务拉起来的。

快速验证方法:切回你启动Jupyter的tmux窗口翻服务日志,你在VS Code里跑单元格的时候如果没有新的内核连接、启动记录,就实锤是用了临时内核。

可复现的解决步骤
  • 先把Jupyter服务本身配成真正常驻:tmux进会话后用下面的命令启动,不要乱加多余参数:
    jupyter notebook --no-browser --port=8888 --ip=127.0.0.1 --NotebookApp.token='固定自定义token'
    启动后按Ctrl+B再按D退出tmux会话(不要直接关窗口杀进程),先用浏览器访问http://127.0.0.1:8888?token=你设的固定token,确认能正常打开、新建notebook跑代码占显存,关浏览器后显存不释放,先把服务本身的常驻性验证通过,再搞VS Code配置。
  • 打开VS Code,按Ctrl + Shift + P搜索Jupyter: Clear Jupyter Server List,把之前存的错的、过期的服务器配置全清掉。
  • 再按Ctrl + Shift + P选Jupyter: Specify Jupyter Server for connections,选择「连接到现有Jupyter服务器」,手动填你刚才验证过的带token的完整地址,一路点确认,等插件提示连接成功。
  • 90%的人漏这步:打开目标.ipynb文件,点编辑器右上角的内核选择按钮,不要选任何带「本地」「Python环境」标签的内核,下拉找到你刚连的远程Jupyter服务条目下挂的内核(会明确标远程服务地址),选中后等内核状态显示为已连接。
  • 做最终校验:在notebook单元格里执行!pstree -s $PPID,看输出的进程树父节点是不是你tmux里启动的Jupyter进程,如果父节点里带code(VS Code进程),说明还是选到了临时内核,回去重选。
  • 本地连本地启动的Jupyter不需要配端口转发,如果是连远程服务器上的Jupyter,端口转发固定映射本地127.0.0.1:8888到远程127.0.0.1:8888,不要用随机端口。
常见坑
  • 配完远程服务器地址不要直接跑代码,VS Code不会自动切换内核,默认还是拉本地临时内核,关窗口必被杀。
  • 如果内核选择下拉里看不到远程服务的内核,说明你填的服务地址、token不对,直接去tmux里看Jupyter启动日志打印的完整访问链接,复制过来填,不要自己拼路径。
  • tmux启动Jupyter前不要开自动退出会话杀进程的配置,detach tmux后可以先断一次SSH重连,确认Jupyter进程还在、端口还在监听,再去VS Code连。

Jupyter Server:Remote 状态截图

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:12:52