2012-04-15 130 views
65

如何正确关闭IPython Notebook?如何正确关闭IPython Notebook?

目前,我只关闭浏览器选项卡,然后在终端中使用Ctrl+C
不幸的是,既不exit()也不打勾Kill kernel upon exit确实帮助(他们杀死他们的内核,但不退出iPython)。

+0

赏金应读作“我已经运行的IPython在http://127.0.0.1:8888/” ..对不起 – richie 2013-07-18 13:44:19

+0

特定内核的PID(在特定的端口打开)中可以看出用'ps -ax'或'top'。因此,可以通过[管理特权]有选择地停止内核来终止该特定进程:#kill PID-of-ki 这不允许内核关闭内核,但强制Ctl-C类型也不会。知道这是否计划为jupyter? – 2017-05-14 00:51:59

回答

62

目前没有比终端中的Ctrl + C更好的方法。

我们正在考虑如何进行明确的关机,但笔记本作为单用户应用程序,用户可以自由停止,并且作为多用户服务器,只有管理员应该能够阻止它。我们还没有弄清楚如何处理这些差异。

(对于未来的读者来说,这是在发展0.12发布和0.13的情况。)

更新2017年12月

IPython的笔记本已经成为笔记本Jupyter。最近的版本添加了一个jupyter notebook stop shell命令,该命令将关闭在该系统上运行的服务器。如果不是默认端口8888,您可以在命令行传递端口号。

您也可以使用nbmanager,这是一个桌面应用程序,它可以显示正在运行的服务器并关闭它们。

最后,我们正在努力加入:

  • 一个配置选项,如果你不使用它指定的时间自动关闭服务器。
  • 用户界面中的一个按钮,用于关闭服务器。 (我们知道它有点疯狂,它已经花了这么长时间了,改变用户界面是有争议的。)
+1

也许只是提供一个选项来允许显式杀死(通过菜单中的按钮?)或不在配置文件和命令行中?所以希望服务器始终运行的人可以设置正确的配置。 – gaborous 2013-03-22 11:25:40

+5

已经有几年了,这种情况有没有改变? Ctrl + C仍然是关闭iPython Notebook服务器的唯一可靠方法吗? – EFC 2014-12-27 22:42:15

+0

目前还没有办法从笔记本电脑的用户界面中关闭它,但是我写了[nbmanager](https://github.com/takluyver/nbmanager),这是一个可以列出和终止笔记本服务器和内核的工具。 – 2014-12-28 11:21:26

4

尝试从任务管理器(如果Windows)中查杀pythonw进程,如果没有其他工作。

2
Linux (Ubuntu 14.04) 

如前所述,尽量通过第一要在你的ipynb/jupyter浏览器会话中的“运行”选项卡正确杀IPython的笔记本进程,然后检查你的控制台上打开终端并关闭用Ctrl-C。如果可能的话应该避免后者。

如果您运行ipython notebook list并继续在不同端口上看到运行ipython服务器,请记下现有笔记本服务器的哪些端口。然后关闭您的TCP端口:

fuser -k 'port#'/tcp 

我不确定是否有其他风险涉及这样做。如果是这样,让我知道。

15

如果您在后台运行jupyter我一样:

jupyter notebook &> /dev/null & 

然后完全退出jupyter,而不是CTL-C,使一个别名:

echo 'alias quitjupyter="kill $(pgrep jupyter)"' >> ~/.bashrc 

重新启动终端。杀死所有jupyter实例:

quitjupyter 

注意:在单引号内使用双引号,如上所示。另一种方式会在将表达式写入您的.bashrc之前对其进行评估(您希望写入命令本身不是'kill 1430'或任何进程号可能与当前的jupyter实例关联)。当然,你可以使用任何你想要的别名。我实际上使用'qjup':

echo 'alias qjup="kill $(pgrep jupyter)"' >> ~/.bashrc 

重新启动您的终端。杀死所有jupyter实例:

qjup 
+0

'kill $(pgrep jupyter)'本身非常好。我正在从坠毁的远程终端运行'jupyter notebook' - 重新登录后,CTRL + C方法无法实现。保存重启远程的核选项,这非常棒。 – MichaelChirico 2017-07-27 23:16:17

+1

为什么不只是'pkill jupyter'? 'pkill'是'pgreb',但是用于杀死进程。 – Nelson 2017-08-28 17:28:27

0

在浏览器会话,你也可以去Kernel然后单击Restart and Clear Output

0

环境


我的操作系统是Ubuntu的16.04和jupyter是4.3.0。

方法


首先,我退出jupyter在其浏览器的主页(注销按钮位于右上)

其次,输入Ctrl + C在你的终端,它显示了:

[I 15:59:48.407 NotebookApp]中断从本地服务笔记本 目录:/ home/Username 0 acti已经内核

的Jupyter笔记本在运行: http://localhost:8888/?token=a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

关闭此笔记本服务器(Y/[N])?

最后步骤中,5秒以内在y类型,并且如果它示出了:

[C 15:59:50.407 NotebookApp]关机确认
[I 15:59:50.408 NotebookApp]关闭内核

恭喜!你成功关闭了你的jupyter。

1

实际上,我相信比使用kill或任务管理器杀死进程更清洁。

在Jupyter笔记本仪表板(您首次启动'jupyter笔记本'时看到的浏览器界面),浏览到您在浏览器中关闭的笔记本文件的位置,但其内核可能仍在运行。

iPython Notebook文件出现时带有一个书本图标,如果它具有正在运行的内核,则显示为绿色;如果内核未运行,则显示为灰色。

只需选中正在运行的文件旁边的复选框,然后单击其上方显示的关机按钮。

这将正确关闭与特定笔记本关联的内核。

8

我认为接受的答案已过时,不再有效。

您可以从文件菜单项的网页界面终止jupyter笔记本。

enter image description here

当你移动鼠标光标移到“关闭并停止”,你会看到下面的解释。

enter image description here

而当你点击“关闭和暂停”,你会看到下面的终端屏幕上的信息。

enter image description here

+1

这个答案应该有100个upvotes。欢呼 – 2017-09-08 10:13:55

+3

为了澄清,这会停止运行Python代码的* kernel *进程。它不会停止*笔记本服务器*,它使笔记本接口,处理加载和保存文件等。 – 2017-12-10 10:39:46