为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 2022-05-11 16:28:26
我让 Jupyter 在 ec2 实例上的 tmux 会话中运行。我有很长时间运行的单元,但是当我关闭浏览器或笔记本电脑盖时,笔记本不再写入输出单元(并且可能会使 python 内核崩溃)。这就是我在远程实例上启动实验室的方式:jupyter lab --ip=0.0.0.0 --port=5002 --no-browser --allow-root我正在寻找一种解决方案,可以无限期地运行笔记本而不会丢失数据,也不必让我的本地计算机保持开启状态。我不想使用 VNC 或 X-windows 转发(太慢)我不想将我的代码重写为 python 脚本(只需要在 jupyter 实验室工作)那里必须有解决方案!更新:下面的“nohup”解决方案不起作用:运行此单元格并关闭浏览器后,重新打开时没有输出:
查看完整描述

2 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

编辑(澄清后):


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


%%capture stored_output


import time

time.sleep(30)

print("Hi")

返回后,运行以下命令:


stored_output.show()

# Hi

原来的:


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


nohup jupyter notebook &

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


查看完整回答
反对 回复 2022-05-11
?
米脂

TA贡献1836条经验 获得超3个赞

我不认为你想要什么是可能的,因为当你的笔记本电脑在合上盖子后进入睡眠模式时,浏览器中的笔记本客户端将停止与服务器交互,即使你设法保持 SSH 连接处于活动状态。您可以更改操作系统设置以防止系统在盖子关闭时进入休眠状态,但这与保持机器开机并使用电池没有什么不同。

我使用的方法是:

  • 在 screen 或 tmux 中启动远程 Jupyter 服务器,以便在 SSH 连接断开时服务器进程和 Python 内核保持运行。

  • 以您的输出不会被写入stdout或将被记录到服务器中的文件的方式写入长时间运行的单元格。

当您唤醒您的机器并重新启动 SSH 连接时,该单元将完成运行,您可以在另一个单元中检查结果或直接查看您的日志。


查看完整回答
反对 回复 2022-05-11
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信