在远程服务器上后台运行Jupyter Notebook,获取输出结果

3

我想在后台运行Jupyter Notebook。我发现了这个问题,其中包含以下命令:

jupyter notebook &> /dev/null &

这个命令可以在我的本地机器上运行。但我有两个问题:

  1. 为了能够在浏览器窗口中访问我的notebook,我需要一个token。然而,在上述命令中,终端窗口没有输出,除了进程ID,因此我无法访问我的notebook。

  2. 我还需要在远程机器上后台运行notebook。我使用ssh进入远程机器,然后运行jupyter notebook --no-browser。但是一旦我关闭笔记本电脑,notebook进程就会在我的本地终端窗口以及ssh中被杀死。

我通过运行普通的命令来解决上述问题:

jupyter notebook --no-browser

在远程服务器上,然后杀死远程服务器的ssh。我的问题归结为以下两个子问题:

  1. 除了关闭ssh之外,是否有其他方法可以做到这一点?我想这不是最大的问题,但是仅仅通过终止ssh而不是使用更优雅或更有效的解决方案似乎非常粗糙。

  2. 如何在本地机器上实现相同的功能?我需要在后台运行Jupyter Notebook,同时以某种方式获取输出。我可以将输出指向另一个文件或在其他地方读取吗?

2个回答

4
  1. 为您的Jupyter Notebook服务器生成一个密码,这样您就不需要通过令牌输入它(每次重新启动服务器时都会更改令牌)。

  2. screentmux中运行您的Jupyter Notebook服务器,这样每次关闭与远程服务器的连接时,您只需从screendetach即可。它将继续在您的远程服务器上运行。下一次您想要访问它时,只需在ssh到远程服务器后键入screen -r以附加屏幕。


1

使用tmux选项无浏览器运行Jupyter笔记本。需要时再打开浏览器。为了保留运行会话,如变量等,可以在Jupyter中使用nbconvert,使用命令:jupyter nbconvert --to notebook --execute --inplace mynotebook.ipynb,在多次分离后重新打开Jupyter笔记本时获取输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接