我正在尝试在后台运行Jupyter Notebook。我发现this question包含了命令
jupyter notebook &> /dev/null &
在我的本地机器上工作。但是,我有两个问题:
我需要一个令牌才能在浏览器窗口中访问我的笔记本。但是,使用上面的命令,除了进程ID之外,终端窗口中没有输出,因此我无法访问我的笔记本。
我还需要在远程计算机的后台运行笔记本。我ssh
进入远程计算机,然后运行jupyter notebook --no-browser
。但是,一旦我关闭笔记本电脑,笔记本电脑进程就会在我的本地终端窗口以及ssh
中被杀死。
我能够通过运行正常的
粗暴地避免上述问题jupyter notebook --no-browser
在远程服务器中,然后将ssh
杀死到远程服务器。我的问题归结为以下两个子问题:
除了关闭ssh
之外,有没有办法做到这一点?我想这不是真正最大的问题,但是简单地杀掉ssh而不是更优雅或更有效的解决方案似乎非常hack。
我如何在本地机器上实现同样的功能?我需要在后台运行Jupyter Notebook,同时还要以某种方式获取输出。我可以将输出定向到另一个文件或在其他地方读取吗?
答案 0 :(得分:2)
为您的Jupyter笔记本电脑服务器生成密码,这样您就不需要通过令牌输入它(每次更改时都会更改)重启服务器)。
在屏幕或 tmux 中运行Jupyter Notebook服务器,因此每次关闭与远程服务器的连接时,只需分离来自屏幕。它将继续在您的远程服务器上运行。下次要访问它时,只需点击screen -r
即可在ssh
之后将屏幕附加到远程服务器。
答案 1 :(得分:0)
在不带浏览器选项的tmux上运行Jupyter笔记本。并在需要时使用浏览器。为了使正在运行的会话始终保持变量和所有变量的状态,您可以在Jupyter中使用nbconvert,使用命令:jupyter nbconvert --to notebook --execute --inplace mynotebook.ipynb
在断开几次后在浏览器中打开它时,在Jupyter笔记本上获得输出。