繁体   English   中英

如何正确关闭 IPython Notebook?

[英]How to close IPython Notebook properly?

如何正确关闭 IPython Notebook?

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

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

我们正在考虑如何显式关闭,但是笔记本作为单用户应用程序(用户可以自由停止它)和多用户服务器(只有管理员应该能够)之间存在一些紧张关系阻止它。 我们还没有完全弄清楚如何处理这些差异。

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

2017 年 12 月更新

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

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

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

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

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

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

您可以在文件菜单项上从 Web 界面终止 jupyter notebook。

在此处输入图片说明

当您将鼠标光标移动到“关闭并暂停”上时,您将看到以下说明。

在此处输入图片说明

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

在此处输入图片说明

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

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

这也将端口号作为参数,您可以优雅地关闭 jupyter notebook。

例如:

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

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

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

这些命令对我有用:

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.

这个答案是从这里改编的。

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

Linux (Ubuntu 14.04)

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

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

fuser -k 'port#'/tcp 

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

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

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

iPython Notebook 文件显示一个书本图标,如果内核正在运行则显示为绿色,如果内核未运行则显示为灰色。

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

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

环境


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

方法


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

其次,在终端中输入Ctrl + C并显示:

[I 15:59:48.407 NotebookApp]interrupted Serving notebooks from local directory: /home/Username 0 active kernels

Jupyter Notebook 运行在: http://localhost:8888/?token=a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

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

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

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

恭喜! 您成功关闭了 jupyter。

选项1

打开另一个控制台并运行

jupyter notebook stop [PORT]

默认的 [PORT] 是 8888,因此,假设 Jupyter Notebooks 在端口 8888 上运行,只需运行

jupyter notebook stop

如果它在端口 9000 上,则

jupyter notebook stop 9000

选项 2来源

  1. 检查运行时文件夹位置

    jupyter --paths
  2. 删除运行时文件夹中的所有文件

    rm -r [RUNTIME FOLDER PATH]/*
  3. 使用top查找剩余的 Jupyter Notebook 运行进程,如果是,则终止它们的 PID。

     top | grep jupyter & kill [PID]

可以将其归结

TARGET_PORT=8888
kill -9 $(lsof -n -i4TCP:$TARGET_PORT | cut -f 2 -d " ")

注意:如果想要在特定 IP/端口上启动笔记本

jupyter notebook --ip=[ADD_IP] --port=[ADD_PORT] --allow-root &

现在最好的方法是使用“退出”按钮左侧的“退出”按钮。 我不得不承认,我不明白注销按钮的效用。 但是,我很高兴他们添加了非常有用的退出按钮。

如果您在 Mac 上并使用 Jupyter 实验室,您可以在终端中执行以下操作

jupyter list

以上将为您提供所有正在运行的服务器。 了解帖子后,只需使用 jupyter lab stop。 例如,如果服务器在 8888 上运行,只需执行

jupyter lab stop 8888

在浏览器会话中,您还可以转到Kernel ,然后单击Restart and Clear Output

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

1.3.3 关闭笔记本:内核关闭 当笔记本打开时,它的“计算引擎”(称为内核)会自动启动。 关闭笔记本浏览器选项卡不会关闭内核,而是内核将继续运行,直到被明确关闭。 要关闭内核,请转到关联的笔记本并单击菜单 File -> Close and Halt。 或者,Notebook Dashboard 有一个名为 Running 的选项卡,显示所有正在运行的 notebook(即内核)并允许关闭它们(通过单击 Shutdown 按钮)。

总结:首先关闭并停止正在运行的笔记本。

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

总结:第二,退出你启动 Jupyter 的终端。

步骤 1 - 在 shell 上执行 control+z (control+c) 步骤 2 _ 关闭网络浏览器

如何正确关闭IPython Notebook?

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

要杀死所有jupyter-notebookjupyter-lab ,打开终端并通过提供杀死所有在后台运行的jupyter

pkill jupyter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM