微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

X11 连接关闭时远程 Jupyter 内核通过 ssh崩溃 我的python分析设置:ssh 断开并重新连接丢失 X11 服务器并导致 python 崩溃问题

如何解决X11 连接关闭时远程 Jupyter 内核通过 ssh崩溃 我的python分析设置:ssh 断开并重新连接丢失 X11 服务器并导致 python 崩溃问题

我的python分析设置:

我在 ssh 服务器上运行 python3 控制台的长时间会话。我让它们通过多个连接在 tmux 中运行。 我要么运行 Ipython3,要么最近我启动了一个 jupyter kernel,我使用 jupyter console --existing kernel-358b-xxxxxx.json 连接到控制台。

我需要使用 matplotlib 来绘制图形,但这需要连接到转发的 X11。因此,我使用 ssh -XY,并确保在运行内核/控制台之前正确设置了 disPLAY 变量。 然后,我使用 %matplotlib 魔法以交互方式绘制事物,该魔法使用“TkAgg”后端。

ssh 断开并重新连接丢失 X11 服务器并导致 python 崩溃

首先,当与服务器断开连接 (Ctrl-D) 时,连接不会关闭,直到我按下 Ctrl-C。我怀疑这会杀死 Python 发起的 X11 连接。 jupyter 内核然后抛出以下错误

XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server "localhost:11.0"
      after 8432 requests (8432 kNown processed) with 0 events remaining.

通常我需要完全重新启动内核,丢失所有变量。 这是我工作流程中的一个主要障碍。我曾尝试在断开连接之前运行 pyplot 命令 plt.switch_backend("Agg") 以停止使用 X11,但它没有帮助。

问题

如何断开 jupyter 内核与 X11 的连接以避免 ssh 会话之间的崩溃? 也许 jupyter 内核代码可以通过 jupyter-run 执行?

请注意,由于我的工作服务器的网络限制(目前基本的 ssh-ing 工作,但不能进行端口转发),不可能允许本地 jupyter 控制台连接到远程内核。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。