我正在进行一些非常冗长的计算(8小时)。在进行这些计算时,我正在研究chrome中的其他内容。在那个网站上出了问题,chrome关闭了,我的jupyter笔记本文件也在运行。现在我已经启动它并且徽标仍然表示程序正在运行(它显示沙漏图标),但我不确定这是否真的如此,在这种情况下我想尽快重新启动程序能够。
希望你们能帮忙!谢谢!
答案 0 :(得分:1)
我刚刚在本地运行的Jupyter 4.4.0上测试了这个。
只要内核仍然存在,提交运行的单元格将照常完成(假设没有异常发生)。完成计算后,您可以像往常一样继续在笔记本上工作。保留对该内核会话的所有更改,例如,如果您定义函数或将结果保存在变量中,它们将在以后可用。如果你有密集计算,你可以检查你的系统监视器:python
消耗大量CPU意味着它可能仍在运行。
如果您的笔记本有未保存的更改,例如新代码或单元格,则它们将丢失。如果设置为运行(Ctrl + Enter),它们中的代码似乎仍然会被执行。
如果再次在浏览器中打开localhost:8888,您应该能够看到内核是否正在运行(例如沙漏图标)。运行/空闲检测似乎在重新连接时正常工作。
但是,新的浏览器会话永远不会从其他会话获取更新。这意味着在断开连接后运行代码发送到标准输出的所有内容(例如print
)无法恢复,但在断开连接之前仍然可以看到它打印的内容,假设它被(自动)保存了。内核完成后,您从此新会话中运行单元格,您的浏览器将正常获取更新并显示输出。显然(#641,#1150,#2833;感谢@unutbu),由于Jupyter的架构需要进行大量的返工才能正常运行,因此它仍然没有修复。
您还可以使用jupyter console --existing your-kernel-session-uuid
附加控制台,但在内核空闲之前它不会响应。