0

我的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.

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

问题

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

请注意,由于我的工作服务器上的网络限制(目前基本的 ssh-ing 有效,但端口转发无效),因此无法允许本地 jupyter 控制台连接到远程内核。

4

0 回答 0