我目前使用Jupyter笔记本的工作流程是在screen
会话内的机器X上运行笔记本服务器:
screen -S jupyter
jupyter notebook
然后我从笔记本电脑Y通过ssh
连接我的笔记本电脑服务器:
ssh -N -f -L localhost:8888:localhost:8888 [user]@[server]
我想要的是能够从Y开始,断开连接并定期检查机器X上的计算。我发现从笔记本电脑Y开始计算时,从屏幕会话中运行Jupyter效果更好。至少当前正在执行的单元格即使ssh连接丢失也会完成。但是,当我再次连接时,在断开连接时产生的任何打印语句或matplotlib
图表都不会显示在笔记本中。我猜stdout
可能只是向笔记本发送东西,如果它当前打开了?
screen
无关,一般是jupyter浏览器笔记本问题:
https://github.com/jupyter/notebook/issues/1647
https://github.com/ipython/ipython/issues/4140
可以在上面链接的讨论中找到解决方法。