Jak poprawnie zamknąć Notatnik IPython?

110

Jak poprawnie zamknąć Notatnik IPython?

Obecnie po prostu zamykam karty przeglądarki, a następnie używam Ctrl+Cw terminalu.
Niestety, exit()ani zaznaczanie Kill kernel upon exitnie pomaga (zabijają jądro, ale nie wychodzą z iPythona).

Piotr Migdal
źródło
PID konkretnego jądra (otwartego na określonym porcie) można zobaczyć za pomocą ps -axlub top. W ten sposób jądra mogą być selektywnie zatrzymywane z [przywilejem administratora], aby zakończyć ten konkretny proces: # kill PID-of-ki To nie pozwala na żadne wewnętrzne procedury zamykania jądra, ale nie ma też wymuszonego typu Ctl-C .... Czy ktoś wie czy to jest planowane dla jupyter?
Dr C

Odpowiedzi:

119

Obecnie nie ma lepszego sposobu na zrobienie tego niż Ctrl + C w terminalu.

Zastanawiamy się, jak jawnie wyłączyć, ale istnieje pewne napięcie między notebookiem jako aplikacją dla jednego użytkownika, w której użytkownik może go zatrzymać, a serwerem dla wielu użytkowników, na którym tylko administrator powinien mieć możliwość żeby to zatrzymać. Jeszcze nie wymyśliliśmy, jak sobie radzić z różnicami.

(Dla przyszłych czytelników jest to sytuacja z wydaniem 0,12 i 0,13 w fazie rozwoju).

Aktualizacja z grudnia 2017 r

Notatnik IPython stał się notatnikiem Jupyter. W najnowszej wersji dodano jupyter notebook stoppolecenie powłoki, które wyłączy serwer działający w tym systemie. Możesz podać numer portu w wierszu poleceń, jeśli nie jest to domyślny port 8888.

Możesz także użyć nbmanager , aplikacji komputerowej, która może wyświetlać uruchomione serwery i je wyłączać.

Na koniec pracujemy nad dodaniem:

  • Opcja konfiguracji do automatycznego wyłączania serwera, jeśli nie używasz go przez określony czas.
  • Przycisk w interfejsie użytkownika służący do zamykania serwera. (Wiemy, że to trochę szalone, że trwało to tak długo. Zmiana interfejsu użytkownika jest kontrowersyjna).
Thomas K.
źródło
1
Może wtedy po prostu zaoferuj opcję zezwalającą na jawne zabijanie (za pomocą przycisku w menu?) Lub nie w pliku konfiguracyjnym i linii poleceń? Aby ludzie, którzy chcą, aby serwer zawsze działał, mogą po prostu ustawić poprawną konfigurację.
hałaśliwy
7
Minęło już kilka lat, czy ta sytuacja w ogóle się zmieniła? Czy Ctrl + C nadal jest jedynym pewnym sposobem na zamknięcie serwera iPython Notebook?
EFC
Nadal nie ma sposobu, aby wyłączyć go z poziomu interfejsu użytkownika notebooka, ale napisałem nbmanager , narzędzie, które może wyświetlać i wyłączać serwery i jądra notebooków.
Thomas K
Zakładam więc, że używanie jupyter notebook &jest złym pomysłem, ponieważ Ctrl+ Cnie ma zastosowania w tej sytuacji
Naveen Dennis
Próbowałem tego, ale nie ma możliwości wpisania czegokolwiek w konsoli, na której działa proces Jupyter Notebook, innego niż ctrl + C. Próbowałem otworzyć nowy PowerShell / wiersz polecenia i wpisać tam jupyter notebook, ale to nie zadziałało.
julianhatwell
24

Jeśli uruchomisz jupyter w tle, tak jak ja:

jupyter notebook &> /dev/null &

Następnie, aby całkowicie wyjść z jupyter, zamiast Ctl-C, wykonaj polecenie aliasu:

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

Uruchom ponownie terminal. Zabij wszystkie instancje jupyterów:

quitjupyter

Uwaga: użyj podwójnych cudzysłowów wewnątrz pojedynczych cudzysłowów, jak pokazano powyżej. Na odwrót oceni wyrażenie przed zapisaniem go do twojego .bashrc (chcesz napisać samo polecenie, a nie „kill 1430” lub inny numer procesu, który może być powiązany z bieżącą instancją jupyter). Oczywiście możesz użyć dowolnego aliasu. Właściwie używam „qjup”:

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

Uruchom ponownie terminal. Zabij wszystkie instancje jupyterów:

qjup
BBW przed Windows
źródło
Sam kill $(pgrep jupyter)w sobie jest doskonały. Biegałem jupyter notebookze zdalnego terminala, który się zawiesił - podejście CTRL + C jest wtedy niemożliwe po ponownym zalogowaniu. Zapisanie nuklearnej opcji ponownego uruchomienia zdalnego, jest świetne.
MichaelChirico
2
Dlaczego nie po prostu pkill jupyter? pkilljest pgreb, ale do zabijania procesów.
rmstmppr
21

Uważam, że zaakceptowana odpowiedź jest nieaktualna i nie jest już ważna.

Notatnik jupyter można zakończyć z poziomu interfejsu internetowego w pozycji menu pliku.

wprowadź opis obrazu tutaj

Kiedy przesuniesz kursor myszy na „zamknij i zatrzymaj”, zobaczysz następujące wyjaśnienie.

wprowadź opis obrazu tutaj

Gdy klikniesz „zamknij i zatrzymaj”, na ekranie terminala pojawi się następujący komunikat.

wprowadź opis obrazu tutaj

wasabi
źródło
15
Aby wyjaśnić, zatrzymuje to jądro , proces, który uruchamia kod Pythona. Nie zatrzymuje serwera notebooków , który tworzy interfejsy notebooków, zajmuje się ładowaniem i zapisywaniem plików itp.
Thomas K,
10

Pierwszym krokiem jest zapisanie wszystkich otwartych notatników. A potem pomyśl o wyłączeniu uruchomionego notebooka Jupyter. Możesz użyć tego prostego polecenia:

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

Co również przyjmuje numer portu jako argument i można z wdziękiem zamknąć notebook jupyter.

Na przykład:

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

Dodatkowo, aby poznać bieżącą uruchomioną instancję Juypter, sprawdź poniższe polecenie:

shell> juypter notebook list 
Currently running servers:
http://localhost:8888/?token=ef12021898c435f865ec706d7c9af8607a7ba58bbee98632 :: /Users/username/jupyter-notebooks [/code]
moronkreacionz
źródło
7

Te polecenia działały dla mnie:

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.

Ta odpowiedź została zaadaptowana stąd .

PatriceG
źródło
5

Spróbuj zabić proces Pythonw z Menedżera zadań (jeśli Windows), jeśli nic innego nie działa.

fixxxer
źródło
4
Linux (Ubuntu 14.04)

Jak wspomniano, spróbuj poprawnie zabić procesy ipython notebook, przechodząc najpierw do zakładki „Running” w sesji przeglądarki ipynb / jupyter, a następnie sprawdź otwarte terminale na konsoli i zamknij za pomocą ctrl-c. W miarę możliwości należy unikać tego ostatniego.

Jeśli uruchomisz ipython notebook listi nadal widzisz działające serwery ipython na różnych portach, zanotuj, do których portów są obsługiwane istniejące notebooki. Następnie zamknij porty TCP:

fuser -k 'port#'/tcp 

Nie jestem pewien, czy wiąże się to z innym ryzykiem. Jeśli tak, daj mi znać.

Soham
źródło
2

Środowisko


Mój system operacyjny to Ubuntu 16.04, a jupyter to 4.3.0.

metoda


Najpierw wylogowałem się z jupyter na jego stronie głównej w przeglądarce (przycisk wylogowania znajduje się w prawym górnym rogu)

Po drugie, wpisz Ctrl + Cswój terminal, a zobaczysz:

[I 15: 59: 48.407 NotebookApp] przerwano Udostępnianie notebooków z katalogu lokalnego: / home / Nazwa użytkownika 0 aktywnych jąder

Notebook Jupyter działa pod adresem : http: // localhost: 8888 /? Token = a572c743dfb73eee28538f9a181bf4d9ad412b19fbb96c82

Czy wyłączyć ten serwer notebooka (t / [n])?

Ostatni krok, wpisz w yciągu 5 sekund i jeśli wyświetli się:

[C 15: 59: 50.407 NotebookApp] Zamknięcie potwierdzone
[I 15:59: 50.408 NotebookApp] Wyłączanie jądra

Gratulacje! Pomyślnie zamykasz swój jupyter.

WY Hsu
źródło
2

Właściwie uważam, że istnieje czystszy sposób niż zabijanie procesu (ów) za pomocą funkcji zabijania lub menedżera zadań.

W pulpicie nawigacyjnym notatnika Jupyter (interfejs przeglądarki, który widzisz po pierwszym uruchomieniu „jupyter notebook”), przejdź do lokalizacji plików notatników, które zostały zamknięte w przeglądarce, ale których jądra mogą nadal działać.

Pliki iPython Notebook pojawiają się z ikoną książki, pokazaną na zielono, jeśli jądro jest uruchomione, lub na szaro, jeśli jądro nie jest uruchomione.

Po prostu zaznacz pole wyboru obok uruchomionego pliku, a następnie kliknij przycisk Zamknij, który pojawi się nad nim.

Spowoduje to prawidłowe zamknięcie jądra związanego z tym konkretnym notebookiem.

Andrew Medlin
źródło
0

W sesji przeglądarki możesz również przejść do, Kernela następnie kliknąć Restart and Clear Output.

Susanna Maier
źródło
0

Kopiuję wklejanie z dokumentacji Jupyter / IPython Notebook Quick Start Guide, wydanej 13 lutego 2018 r. Http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

1.3.3 Zamknięcie notatnika: wyłączenie jądra Po otwarciu notatnika automatycznie uruchamiany jest jego „silnik obliczeniowy” (zwany jądrem). Zamknięcie karty przeglądarki notebooka nie spowoduje wyłączenia jądra, zamiast tego jądro będzie działało do momentu jawnego wyłączenia. Aby wyłączyć jądro, przejdź do powiązanego notatnika i kliknij menu Plik -> Zamknij i zatrzymaj. Alternatywnie pulpit nawigacyjny notebooka ma kartę o nazwie Uruchomione, która pokazuje wszystkie uruchomione notatniki (tj. Jądra) i umożliwia ich zamknięcie (przez kliknięcie przycisku Zamknij).

Podsumowanie: Najpierw zamknij i zatrzymaj działanie notebooków.

1.3.2 Zamknij aplikację Jupyter Notebook Zamknięcie przeglądarki (lub karty) nie spowoduje zamknięcia aplikacji Jupyter Notebook. Aby całkowicie go wyłączyć, musisz zamknąć powiązany terminal. Mówiąc bardziej szczegółowo, aplikacja Jupyter Notebook to serwer, który pojawia się w przeglądarce pod domyślnym adresem ( http: // localhost: 8888 ). Zamknięcie przeglądarki nie spowoduje wyłączenia serwera. Możesz ponownie otworzyć poprzedni adres, a aplikacja Jupyter Notebook zostanie ponownie wyświetlona. Możesz uruchomić wiele kopii aplikacji Jupyter Notebook, które pojawią się pod podobnym adresem (tylko numer po „:”, który jest portem, będzie się zwiększał dla każdej nowej kopii). Ponieważ za pomocą jednej aplikacji Jupyter Notebook możesz już otworzyć wiele notatników, nie zalecamy uruchamiania wielu kopii aplikacji Jupyter Notebook.

Podsumowanie: Po drugie, wyjdź z terminalu, z którego wystrzeliłeś Jupytera.

Subhrajit Bhattacharya
źródło
0

Krok 1 - W powłoce po prostu wykonaj control + z (control + c) Krok 2 - zamknij przeglądarkę internetową

Reihan_amn
źródło