Как правильно закрыть IPython Notebook?

110

Как правильно закрыть IPython Notebook?

В настоящее время я просто закрываю вкладки браузера, а затем использую их Ctrl+Cв терминале.
К сожалению, ни одна exit()галочка Kill kernel upon exitне помогает (они убивают ядро, но не выходят из iPython).

Петр Мигдал
источник
PID конкретного ядра (открытого на определенном порту) можно увидеть с помощью ps -axили top. Таким образом, ядра могут быть выборочно остановлены с помощью [административных привилегий], чтобы завершить этот конкретный процесс: # kill PID-of-ki Это не разрешает внутренние процедуры завершения работы ядра, но также и принудительный тип Ctl-C .... Кто-нибудь знает если это планируется для jupyter?
Dr C

Ответы:

119

В настоящее время нет лучшего способа сделать это, чем Ctrl + C в терминале.

Мы думаем о том, как сделать явное завершение работы, но есть некоторая напряженность между ноутбуком как однопользовательским приложением, где пользователь может его остановить, и как многопользовательским сервером, где только администратор должен иметь возможность чтобы остановить это. Мы еще не совсем разработали, как справиться с различиями.

(Для будущих читателей это ситуация с выпуском 0,12 и 0,13 в разработке.)

Обновление декабрь 2017 г.

Блокнот IPython превратился в Блокнот Jupyter. В последней версии добавлена jupyter notebook stopкоманда оболочки, которая отключает сервер, работающий в этой системе. Вы можете передать номер порта в командной строке, если это не порт по умолчанию 8888.

Вы также можете использовать nbmanager , настольное приложение, которое может отображать запущенные серверы и выключать их.

Наконец, мы работаем над добавлением:

  • Параметр конфигурации для автоматического выключения сервера, если вы не используете его в течение определенного времени.
  • Кнопка в пользовательском интерфейсе для выключения сервера. (Мы знаем, что это немного безумие, что это заняло столько времени. Изменение пользовательского интерфейса вызывает споры.)
Томас К
источник
1
Может быть, тогда просто предложите возможность разрешить явное уничтожение (с помощью кнопки в меню?) Или не в файле конфигурации и командной строке? Чтобы люди, которые хотят, чтобы сервер всегда работал, могли просто настроить правильную конфигурацию.
gaborous
7
Прошло несколько лет, изменилась ли вообще эта ситуация? Ctrl + C по-прежнему является единственным надежным способом выключить сервер iPython Notebook?
EFC
По-прежнему нет способа выключить его из пользовательского интерфейса ноутбука, но я написал nbmanager , инструмент, который может отображать и уничтожать серверы и ядра ноутбука.
Thomas K
Поэтому я полагаю, что использование jupyter notebook &- плохая идея, поскольку Ctrl+ Cне применяется в этой ситуации
Навин Деннис
Я пробовал это, но нет возможности ввести что-либо в консоль, на которой запущен процесс Jupyter Notebook, кроме ctrl + C. Я попытался открыть новую командную строку / командную строку и набрать оттуда 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
Толстушки до Windows
источник
Сам kill $(pgrep jupyter)по себе отличный. Я работал jupyter notebookс удаленного терминала, который разбился - подход CTRL + C после входа в систему невозможен. Сохранение ядерной опции перезапуска удаленного, это здорово.
MichaelChirico
2
Почему не просто так pkill jupyter? pkillесть pgreb, но для убийственных процессов.
rmstmppr
21

Я думаю, что принятый ответ устарел и больше не действует.

Вы можете закрыть блокнот jupyter через веб-интерфейс в пункте меню файла.

введите описание изображения здесь

Когда вы переместите курсор мыши на «закрыть и остановить», вы увидите следующее объяснение.

введите описание изображения здесь

И когда вы нажмете «закрыть и остановить», вы увидите следующее сообщение на экране терминала.

введите описание изображения здесь

васаби
источник
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.

Этот ответ был адаптирован отсюда .

PatriceG
источник
5

Попробуйте убить процесс pythonw из диспетчера задач (если Windows), если ничего не работает.

fixxxer
источник
4
Linux (Ubuntu 14.04)

Как уже упоминалось, попробуйте правильно убить процессы ipython notebook, сначала перейдя на вкладку «работает» в сеансе браузера ipynb / jupyter, а затем проверьте открытые терминалы на консоли и завершите работу с помощью ctrl-c. По возможности следует избегать последнего.

Если вы запускаете ipython notebook listи продолжаете видеть запущенные серверы ipython на разных портах, обратите внимание, на какие порты обслуживаются существующие ноутбуки. Затем выключите свои TCP-порты:

fuser -k 'port#'/tcp 

Я не уверен, есть ли другие риски, связанные с этим. Если да, дайте мне знать.

Soham
источник
2

Окружающая среда


Моя ОС - Ubuntu 16.04, а jupyter - 4.3.0.

метод


Во-первых, я вышел из системы jupyter на его домашней странице в браузере (кнопка выхода находится в правом верхнем углу)

Во-вторых, введите Ctrl + Cсвой терминал, и он покажет:

[I 15: 59: 48.407 NotebookApp] прервано Обслуживание записных книжек из локального каталога: / home / Имя пользователя 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.

WY Hsu
источник
2

На самом деле, я считаю, что есть более чистый способ, чем убить процесс (ы) с помощью kill или диспетчера задач.

На панели инструментов Jupyter Notebook (интерфейс браузера, который вы видите при первом запуске jupyter notebook) перейдите к расположению файлов записной книжки, которые вы закрыли в браузере, но ядра которых все еще могут работать.

Файлы iPython Notebook отображаются со значком книги: зеленым, если ядро ​​запущено, или серым, если ядро ​​не запущено.

Просто установите флажок рядом с запущенным файлом, затем нажмите кнопку «Завершение работы», которая появляется над ним.

Это приведет к правильному завершению работы ядра, связанного с этим конкретным ноутбуком.

Эндрю Медлин
источник
0

В сеансе браузера вы также можете перейти Kernelи нажать Restart and Clear Output.

Сюзанна Майер
источник
0

Я копирую вставку из документации по быстрому запуску Jupyter / IPython Notebook, выпущенной 13 февраля 2018 г. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Закрытие записной книжки: завершение работы ядра При открытии записной книжки автоматически запускается ее «вычислительный механизм» (называемый ядром). Закрытие вкладки обозревателя ноутбука не приведет к завершению работы ядра, вместо этого ядро ​​будет работать до тех пор, пока оно не будет отключено явным образом. Чтобы выключить ядро, перейдите в соответствующую записную книжку и щелкните меню Файл -> Закрыть и остановить. В качестве альтернативы, на панели инструментов Notebook есть вкладка «Запуск», которая показывает все запущенные записные книжки (то есть ядра) и позволяет их выключить (нажав кнопку «Завершение работы»).

Резюме: Сначала закройте и остановите работу ноутбуков.

1.3.2 Завершение работы приложения Jupyter Notebook При закрытии браузера (или вкладки) приложение Jupyter Notebook не закрывается. Чтобы полностью выключить его, вам нужно закрыть связанный терминал. Более подробно, приложение Jupyter Notebook - это сервер, который отображается в вашем браузере по адресу по умолчанию ( http: // localhost: 8888 ). Закрытие браузера не приведет к выключению сервера. Вы можете повторно открыть предыдущий адрес, и приложение Jupyter Notebook будет отображаться повторно. Вы можете запустить много копий приложения Jupyter Notebook, и они будут отображаться по аналогичному адресу (только номер после «:», который является портом, будет увеличиваться для каждой новой копии). Поскольку с помощью одного приложения Jupyter Notebook вы уже можете открывать множество записных книжек, мы не рекомендуем запускать несколько копий приложения Jupyter Notebook.

Описание: во-вторых, выйдите из терминала, с которого вы запустили Jupyter.

Субхраджит Бхаттачарья
источник
0

Шаг 1 - В оболочке просто сделайте control + z (control + c) Шаг 2 _ закройте веб-браузер

Reihan_amn
источник