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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...