丢失 jupyter notebook ssh 连接会杀死内核
Posted
技术标签:
【中文标题】丢失 jupyter notebook ssh 连接会杀死内核【英文标题】:Losing jupyter notebook ssh connection kills kernel 【发布时间】:2016-06-26 05:08:25 【问题描述】:我有一个在 AWS *** 中运行的 Ipython Jupyter 内核,我通过隧道连接到笔记本电脑的端口,并通过浏览器连接到该端口。我发现每当我失去隧道时内核就会死亡 我必须从头开始运行我的笔记本。
这可能是什么原因,我该如何预防?
只有笔记本内核死了,笔记本服务器保持正常。
【问题讨论】:
【参考方案1】:我承认这看起来很奇怪。我想知道笔记本中是否有什么东西正在杀死内核。这可能发生。你可能已经这样做了,但是尝试一个非常简单的笔记本,比如a=10
,断开连接,然后在你重新连接后看看你是否可以print(a)
。
但是,完全避免该问题的方法是使用screen 或tmux 来创建持久的sshs 会话。这就是许多在远程服务器上工作的人所做的。
【讨论】:
screen
是救生员!我遇到了与 OP 类似的问题(从远程服务器运行 Jupyter Notebook,如果 SSH 连接中断,内核将停止)。运行screen
并从那里启动 Jupyter Notebook 服务器,即使我与服务器断开连接,内核也会继续运行。更好的是,当我通过 SSH 重新连接到服务器时,我本地计算机上的 Jupyter Notebook 查看器会继续更新服务器上正在运行的进程,就好像什么都没发生一样。【参考方案2】:
可能是你的代理造成的?我为此困扰了一下午,因为我使用我的jupyter的nginx proxy_pass代理到那个端口。但它总是没有连接,我查看了 jupyter notebook 的文档,发现 Jupter Proxy Issue 我改为使用 nginx 重写而不是代理,它可以工作。所以在我的情况下,它可能是由代理引起的。
【讨论】:
以上是关于丢失 jupyter notebook ssh 连接会杀死内核的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 容器中将 Spyder 连接到远程 Jupyter Notebook
从 SSH 运行 Jupyter Notebook 到远程服务器节点