长期运行的 Jupyter 笔记本/实验室?

M.R*_*.R. 9 python ipython jupyter jupyter-notebook jupyter-lab

我让 Jupyter 在 ec2 实例上的 tmux 会话中运行。我有很长时间运行的单元格,但是当我关闭浏览器或笔记本电脑盖时,笔记本电脑不再写入输出单元格(并且可能会导致 python 内核崩溃)。

这是我在远程实例上启动实验室的方式:

jupyter lab --ip=0.0.0.0 --port=5002 --no-browser --allow-root
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种解决方案,可以无限期地运行笔记本而不会丢失数据,也不必让我的本地计算机保持开机状态。

  • 我不想使用 VNC 或 X-windows 转发(太慢)
  • 我不想将我的代码重写为 python 脚本(只需要在 jupyter 实验室中工作)

必须有一个解决方案!

更新:

下面的“nohup”解决方案不起作用:

在此处输入图片说明

运行此单元并关闭浏览器后,重新打开时没有输出:

在此处输入图片说明

sam*_*dai 8

编辑(澄清后):

在关闭浏览器或笔记本电脑后,您可以使用一些 Jupyter 魔法继续运行单元格,然后在返回后打印输出。这是如何做到的:

%%capture stored_output

import time
time.sleep(30)
print("Hi")
Run Code Online (Sandbox Code Playgroud)

返回后,运行以下命令:

stored_output.show()
# Hi
Run Code Online (Sandbox Code Playgroud)

原来的:

您需要使用 nohup 启动笔记本。

nohup jupyter notebook &
Run Code Online (Sandbox Code Playgroud)

添加 '&' 只需要返回 shell。笔记本将在后台运行,当您关闭 SSH 连接时,它的进程 ID 不会被终止。