Як правильно закрити ноутбук IPython?


110

Як правильно закрити ноутбук IPython?

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


PID певного ядра (відкритого на певному порту) можна побачити за допомогою ps -axабо top. Таким чином, ядра можуть бути вибірково зупинені за допомогою [адміністративної привілеї] для припинення цього конкретного процесу: # kill PID-of-ki Це не дозволяє здійснювати внутрішні процедури відключення ядра, а також не примусовий тип Ctl-C .... Хто-небудь знає якщо це планується на юпітер?
Д-р С

Відповіді:


119

В даний час немає кращого способу зробити це, ніж Ctrl + C в терміналі.

Ми думаємо про те, як зробити явне відключення, але існує певна напруга між ноутбуком як однокористувацьким додатком, де користувач може його зупинити, і як багатокористувацький сервер, де лише адміністратор повинен мати можливість щоб зупинити це. Ми ще не зовсім розробили, як впоратися з відмінностями.

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

Оновити грудень 2017 року

Зошит IPython став Блокноту Юпітера. Нещодавня версія додала jupyter notebook stopкоманду оболонки, яка вимкне сервер, що працює в цій системі. Ви можете передати номер порту в командному рядку, якщо це не порт 8888 за замовчуванням.

Ви також можете використовувати nbmanager - настільний додаток, який може показувати запущені сервери та вимикати їх.

Нарешті, ми працюємо над додаванням:

  • Параметр config для автоматичного відключення сервера, якщо ви не використовуєте його протягом визначеного часу.
  • Кнопка в інтерфейсі користувача, щоб вимкнути сервер. (Ми знаємо, що це трохи божевільно, що це зайняло так довго. Зміна інтерфейсу є суперечливою.)

1
Може, тоді просто запропонуйте можливість дозволити явне вбивство (за допомогою кнопки в меню?) Чи не в конфігураційному файлі та командному рядку? Так що люди, які хочуть, щоб сервер завжди працював, може просто встановити правильну конфігурацію.
габоровий

7
Минуло кілька років, чи змінилася ця ситуація взагалі? Чи залишається Ctrl + C єдиним вірним способом вимкнути сервер ноутбуків iPython?
EFC

Досі не існує способу її вимкнути з інтерфейсу ноутбука, але я написав nbmanager , інструмент, який може перераховувати та вбивати сервери та ядра ноутбуків.
Томас К

Тож я припускаю, що використовувати jupyter notebook &це погана ідея, оскільки Ctrl+ Cне застосовується у цій ситуації
Naveen Dennis

Я спробував це, але немає способу ввести що-небудь в консоль, на якій працює процес Jupyter Notebook, крім ctrl + C. Я спробував відкрити нову командний рядок / командний рядок і набрав зупинку ноутбука юпітера, але це не вийшло.
julianhatwell

24

Якщо ви запускаєте жупітер у фоновому режимі, як я:

jupyter notebook &> /dev/null &

Потім, щоб повністю вийти з юпітера, замість Ctl-C, зробіть команду псевдонім:

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

Перезапустіть термінал. Вбийте всі екземпляри юпітера:

quitjupyter

Примітка: використовуйте подвійні лапки всередині одиничних лапок, як показано вище. З іншого боку, ви зможете оцінити вираз перед тим, як записати його у свій .bashrc (ви хочете написати саму команду не 'kill 1430' або будь-який номер процесу, який може бути пов’язаний з поточним екземпляром юпітера). Звичайно, ви можете використовувати будь-який псевдонім, який хочете. Я фактично використовую 'qjup':

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

Перезапустіть термінал. Вбийте всі екземпляри юпітера:

qjup

Сама kill $(pgrep jupyter)по собі відмінна. Я бігав jupyter notebookіз віддаленого терміналу, який зазнав аварії - підхід CTRL + C тоді неможливий після входу в систему. Збереження ядерного варіанту перезапуску віддаленого - це чудово.
MichaelChirico

2
Чому б не просто pkill jupyter? pkillє pgreb, але для вбивчих процесів.
rmstmppr

21

Я вважаю, що прийнята відповідь застаріла і більше не відповідає дійсності.

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

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

Перемістивши курсор миші на "закрити і зупинити", ви побачите наступне пояснення.

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

І натиснувши кнопку "Закрити і зупинити", на екрані термінала з'явиться наступне повідомлення.

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


15
Для уточнення це зупиняє ядро , процес, який запускає ваш код Python. Це не зупиняє сервер ноутбуків , який робить інтерфейси ноутбука, займається завантаженням та збереженням файлів тощо
Thomas K

10

Перший крок - збереження всіх відкритих зошитів. А потім подумайте про вимкнення запущеної ноутбука Юпітера. Ви можете використовувати цю просту команду:

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

Що також приймає номер порту в якості аргументу, і ви можете вимкнути ноутбук юпітера витончено.

Наприклад:

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

Крім того, щоб знати ваш запущений екземпляр юпітера, перевірте команду нижче:

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

Спробуйте вбити процес pythonw з диспетчера завдань (якщо Windows), якщо нічого іншого не працює.


4
Linux (Ubuntu 14.04)

Як згадувалося, спробуйте вбити процеси ноутбука ipython належним чином, спершу перейдіть на вкладку "запуск" у сесії браузера ipynb / jupyter, а потім перевірте відкриті термінали на консолі та вимкніть функцію ctrl-c. Останнього слід уникати, якщо це можливо.

Якщо ви запускаєте ipython notebook listі продовжуєте бачити запуск серверів ipython в різних портах, занотуйте, до яких портів подаються існуючі ноутбуки. Потім вимкніть свої порти TCP:

fuser -k 'port#'/tcp 

Я не впевнений, чи є інші ризики, пов'язані з цим. Якщо це так, дайте мені знати.


2

Середовище


Моя ОС - Ubuntu 16.04, а юпітер - 4.3.0.

Метод


По-перше, я вийшов з юпітера на своїй домашній сторінці в браузері (кнопка виходу вгорі праворуч)

По-друге, введіть Ctrl + Cсвій термінал, і він показує:

[I 15: 59: 48.407 NotebookApp] перервано Подання блокнотів із локального каталогу: / home / Username 0 активних ядер

Ноутбук Юпітера працює за адресою: http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

Вимкнути цей сервер ноутбуків (y / [n])?

Останній крок введіть yпротягом 5 секунд, і якщо він показує:

[C 15: 59: 50.407 NotebookApp] Вимкнення підтверджено
[I 15: 59: 50.408 NotebookApp] Завершення роботи ядер

Вітаю! Ви успішно закриваєте свій юпітер.


2

Насправді, я вважаю, що існує більш чистий спосіб, ніж вбивати процес (и), використовуючи kill або менеджер завдань.

На панелі інструментів Jupyter Notebook (інтерфейс браузера, який ви бачите під час першого запуску «ноутбука юпітера»), перейдіть до місця розташування файлів ноутбука, які ви закрили в браузері, але ядра яких все ще можуть працювати.

Файли ноутбука iPython з'являються із піктограмою книги, зображеною зеленим кольором, якщо у нього працює ядро, або сірим, якщо ядро ​​не працює.

Просто встановіть прапорець поруч із запущеним файлом, а потім натисніть кнопку Завершення роботи, що з’явиться над ним.

Це належним чином вимкне ядро, пов’язане з певним ноутбуком.



0

Я копіюю вставку з Документації для швидкого початку документації Jupyter / IPython Notebook, опублікованої 13 лютого 2018 року. Http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Закрити ноутбук: вимкнено ядро ​​Коли відкриється ноутбук, його «обчислювальний двигун» (зване ядром) автоматично запускається. Закривши вкладку браузера ноутбука, ядро ​​не вимкне, натомість ядро ​​буде працювати, поки явно не вимкнеться. Щоб вимкнути ядро, перейдіть до пов’язаного ноутбука та натисніть меню Файл -> Закрити та зупинити. Крім того, на панелі керування ноутбука є вкладка "Біг", яка показує всі запущені ноутбуки (тобто ядра) і дозволяє їх вимикати (натискаючи кнопку "Завершення роботи").

Короткий зміст: Спочатку закрийте та припиніть роботу зошитів.

1.3.2 Вимкнення програми для ноутбука Юпітера Закриття браузера (або вкладки) не закриє додаток для ноутбука Юпітера. Щоб повністю відключити його, потрібно закрити відповідний термінал. Більш детально, додаток Jupyter Notebook - це сервер, який з’являється у вашому браузері за адресою за замовчуванням ( http: // localhost: 8888 ). Закриття браузера не вимкне сервер. Ви можете знову відкрити попередню адресу, і додаток для ноутбука Юпітера буде повторно відображено. Ви можете запустити багато примірників додатка Jupyter Notebook, і вони з’являться за аналогічною адресою (для кожної нової копії збільшуватиметься лише число після “:”, що є портом). Оскільки за допомогою однієї програми Jupyter Notebook ви вже можете відкрити багато ноутбуків, ми не рекомендуємо запускати кілька копій додатка Jupyter Notebook.

Підсумок: По-друге, вийдіть з терміналу, з якого ви звільнили Юпітера.


0

Крок 1 - На оболонці просто виконайте управління + z (контроль + с) Крок 2 - закрийте веб-браузер

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.