2012-04-15 91 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