如何正确关闭IPython Notebook?


110

如何正确关闭IPython Notebook?

目前,我只是关闭浏览器选项卡,然后Ctrl+C在终端中使用。
不幸的是,exit()滴答和滴答都Kill kernel upon exit没有帮助(它们确实杀死了它们的内核,但是没有退出iPython)。


可以使用ps -ax或查看特定内核的PID(在特定端口打开)top。因此,可以使用[管理特权]有选择地停止内核,以终止该特定进程:#kill PID-of-ki这不允许内核进行内部关闭程序,但是也不允许强制Ctl-C类型...。如果这计划用于jupyter?
C博士

Answers:


119

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

我们正在考虑如何进行显式关机,但是笔记本作为单用户应用程序(用户可以自由停止它)和作为多用户服务器(只能由管理员使用)之间存在一定的压力。阻止它。我们还没有弄清楚如何处理差异。

(对于将来的读者来说,就是0.12已发布而0.13正在开发中的情况。)

2017年12月更新

IPython Notebook已成为Jupyter Notebook。最新版本添加了jupyter notebook stopshell命令,该命令将关闭在该系统上运行的服务器。如果不是默认端口8888,则可以在命令行中传递端口号。

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

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

  • 一个配置选项,如果您在指定时间内不使用服务器,则会自动关闭服务器。
  • 用户界面中的一个按钮,用于关闭服务器。(我们知道花了这么长时间真是太疯狂了。更改UI引发了争议。)

1
然后,也许只是提供一个选项以允许显式杀死(通过菜单中的按钮?),或者不在配置文件和命令行中?这样,希望服务器始终运行的人就可以设置正确的配置。
令人敬畏的

7
已经过去了几年,这种情况有没有改变?Ctrl + C仍然是关闭iPython Notebook服务器的唯一可靠方法吗?
EFC 2014年

仍然没有办法从笔记本UI中关闭它,但是我写了nbmanager,它可以列出并杀死笔记本服务器和内核的工具。
Thomas K

所以我认为使用jupyter notebook &是个坏主意,因为Ctrl+ C不适用于这种情况
Naveen Dennis

我尝试了此操作,但是除了ctrl + C之外,没有其他方法可以在运行Jupyter Notebook进程的控制台中键入任何内容。我尝试打开一个新的powershell /命令提示符,然后从那里键入jupyter notebook stop,但是没有用。
julianhatwell

24

如果您像我一样在后台运行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

kill $(pgrep jupyter)本身是优秀的。我是jupyter notebook从崩溃的远程终端运行的,因此重新登录后无法使用CTRL + C方法。保存重启远程的核选项,这很棒。
MichaelChirico

2
为什么不只是pkill jupyter呢?pkillpgreb,但用于终止进程。
rmstmppr

21

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

您可以从文件菜单项上的Web界面终止Jupyter Notebook。

在此处输入图片说明

将鼠标光标移至“关闭并停止”位置时,将看到以下说明。

在此处输入图片说明

当您单击“关闭并停止”时,您将在终端屏幕上看到以下消息。

在此处输入图片说明


15
要澄清的是,这将停止内核,即运行Python代码的进程。它不会停止在笔记本电脑服务器,这使得笔记本的接口,具有加载和保存文件等交易
托马斯ķ

10

第一步是保存所有打开的笔记本。然后考虑关闭正在运行的Jupyter Notebook。您可以使用以下简单命令:

$ jupyter notebook stop 
Shutting down server on port 8888 ...

它也将端口号作为参数,您可以正常关闭jupyter笔记本。

例如:

jupyter notebook stop 8889 
Shutting down server on port 8889 ...

此外,要了解您当前的juypter实例正在运行,请检查以下命令:

shell> juypter notebook list 
Currently running servers:
http://localhost:8888/?token=ef12021898c435f865ec706d7c9af8607a7ba58bbee98632 :: /Users/username/jupyter-notebooks [/code]

7

这些命令对我有用:

jupyter notebook list # shows the running notebooks and their port-numbers
                      # (for instance: 8080)
lsof -n -i4TCP:[port-number] # shows PID.
kill -9 [PID] # kill the process.

这个答案改编自这里


5

如果没有其他作用,请尝试从任务管理器(如果是Windows)中终止pythonw进程。


4
Linux (Ubuntu 14.04)

如前所述,尝试通过先转到ipynb / jupyter浏览器会话中的“运行”选项卡来正确终止ipython Notebook进程,然后检查控制台上打开的终端并使用ctrl-c关闭。如果可能,应避免后者。

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

fuser -k 'port#'/tcp 

我不确定这样做是否还会涉及其他风险。如果是这样,请告诉我。


2

环境


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

方法


首先,我在浏览器的主页上注销了jupyter(注销按钮在右上角)

第二,输入Ctrl + C您的终端,它显示:

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

Jupyter Notebook在以下位置运行: http:// localhost:8888 /?token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

关闭此笔记本服务器(y / [n])?

最后一步,y在5秒钟内键入,如果显示:

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

恭喜!您成功关闭了jupyter。


2

实际上,我相信有一种比使用kill或task manager杀死进程更干净的方法。

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

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

只需选中正在运行的文件旁边的复选框,然后单击出现在文件上方的“关机”按钮即可。

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



0

我复制从Jupyter / IPython的笔记本电脑快速入门指南文档粘贴,发布了2月13日,2018年 http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3关闭笔记本:内核关闭打开笔记本时,将自动启动其“计算引擎”(称为内核)。关闭笔记本浏览器选项卡将不会关闭内核,而是内核将一直运行直到被明确关闭。要关闭内核,请转到关联的笔记本,然后单击菜单文件->关闭并暂停。另外,笔记本仪表板有一个名为“运行”的选项卡,其中显示了所有正在运行的笔记本(即内核),并允许将其关闭(通过单击“关机”按钮)。

摘要:首先关闭并停止笔记本计算机的运行。

1.3.2关闭Jupyter Notebook应用程序关闭浏览器(或选项卡)将不会关闭Jupyter Notebook应用程序。要完全关闭它,您需要关闭关联的终端。更详细地说,Jupyter Notebook应用程序是一台服务器,显示在浏览器中的默认地址(http:// localhost:8888)。关闭浏览器不会关闭服务器。您可以重新打开以前的地址,然后Jupyter Notebook应用将重新显示。您可以运行Jupyter Notebook应用程序的许多副本,它们将显示在相似的地址上(只有端口“:”之后的数字才会为每个新副本递增)。由于只有一个Jupyter Notebook App,您已经可以打开许多笔记本,因此我们不建议您运行Jupyter Notebook App的多个副本。

摘要:其次,退出您从其发射Jupyter的终端。


0

步骤1-在shell上,只需执行control + z(control + c)步骤2 _关闭Web浏览器

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.