如何在后台运行`jupyter notebook`?无需为它保留一个终端

Xin*_*ong 23 jupyter-notebook

通常我们会jupyter notebook在浏览器中弹出一个页面来使用笔记本.但是,打开服务器的终端仍然存在.有没有办法我们可以关闭该终端,服务器在后面运行?

pgr*_*cht 19

您可以使用将进程置于后台jupyter notebook &.您可以在之后关闭终端,然后该过程仍将继续运行.

  • 你能举个例子吗? (4认同)
  • 之后怎么关闭呢? (4认同)
  • 使用这种方法,关闭终端会为我关闭 jupyter 服务器。有什么原因可能会发生这种情况吗? (3认同)
  • 这不起作用,并且答案缺乏细节。关闭 Jupyter 将关闭该任务。 (2认同)

Yog*_*esh 16

Tmux是一个很好的选择,可以在后台运行你的Jupyter笔记本.

我正在使用操作系统:Ubuntu 16.0在谷歌云平台的VM实例上运行我的Jupyter笔记本.哪里

  1. 我必须启动SSH终端
  2. 然后运行命令:jupyter-notebook --no-browser --port=5000.它将在该VM实例上的端口号5000上启动Jupyter Notebook
  3. 然后我打开我的浏览器和typer ip_addrees_of_my_instance:port_number,这是5000.它将在浏览器中打开我的笔记本.

到目前为止,一切都很好.但是等待与我的SSH终端的连接终止然后Jupyter笔记本立即停止,因此我必须在重新启动ssh终端后再次重新运行它或从新的ssh终端重新运行它.

要避免这tmux是非常好的选择.

终端多路复用器(tmux)保持SSH会话在ssh终端关闭后在后台运行:

  1. 启动ssh终端
  2. 类型tmux.它会在同一个终端打开一个窗口.
  3. 命令在这里启动Jupyter Notebook.打开笔记本.

现在,如果SSH终端关闭/终止,它将继续在实例上运行您的笔记本.

如果连接终止,则:

  1. 重新连接或打开新的ssh终端.要查看此笔记本(在后台继续运行),请键入:tmux attachcommand.

想要终止tmux会话:

  1. 关闭笔记本电脑.然后输入exittmux-terminal-window.(更新:如果我们关闭笔记本并使用tmux detach命令:它将退出tmux会话窗口/终端而不终止/停止tmux会话)

有关详细信息,请参阅以下文章:https://www.tecmint.com/keep-remote-ssh-sessions-running-after-disconnection/


小智 15

在 *nix 下,运行程序避免因关闭终端而终止的最佳方法是使用nohup(不挂断)。

要在运行服务器后启动浏览器,请使用以下命令:

nohup jupyter notebook &
Run Code Online (Sandbox Code Playgroud)

要在不打开浏览器的情况下启动服务器,请使用以下命令:

nohup jupyter notebook --no-browser &
Run Code Online (Sandbox Code Playgroud)

请注意,您可以jupyter使用 页面右上角的退出来关闭服务器jupyter

nohupput 作为进程 init(0) 的父进程,因此当终端关闭时它不会收到“挂断”信号。所有输出(标准输出和标准错误)都被重定向到nohup.out nohup作为程序和 shell 命令存在的文件,所以如果你有bash,请检查man页面bash以阅读更多详细信息。


小智 7

您可以使用screen它来运行它。

screen -A -m -d -S anyscreenname jupyter notebook --no-browser
Run Code Online (Sandbox Code Playgroud)

这将在屏幕中启动 jupyter,您可以使用屏幕命令访问屏幕。


小智 6

实际上,jupyter notebook &仅靠它是不够的,后端仍然会登录到您的屏幕。
您需要的是,从本期引用

jupyter notebook > /path/to/somefileforlogging 2>&1 &
Run Code Online (Sandbox Code Playgroud)


Tiz*_*U0U 5

在后台运行jupyter笔记本服务器时,这对我有用。

$> nohup jupyter notebook --allow-root > error.log &

停止nohup jupyter笔记本很简单。

首先,找到jupyter的pid:

$> ps -ef| grep juypter

例如输出:

root 11417 2897 2 16:00 pts/0 00:04:29 /path/to/jupyter-notebook

然后终止进程:

$> kill -9 11417

您还可以通过将pid与以下内容一起存储来简化此操作:

$> nohup jupyter notebook --allow-root > error.log & echo $!> pid.txt

即,您可以通过以下方式停止笔记本:

$> kill -9 $(cat pid.txt)


停止jupyter笔记本的另一种方法是从笔记本页面退出。