nie można zamknąć uruchomionego serwera notebooka jupyter

Używam Notatnika Jupyter do projektu. Ponieważ ssh do klastra Linuksa w pracy używam

ssh -Y -L 8000:localhost:8888 user@host

Następnie uruchamiam notatnik z jupyter notebook --no-browser &, aby móc kontynuować korzystanie z terminala. Następnie na mojej lokalnej maszynie otwieram się na localhost:8000 i idę do pracy.

Mój problem polega na tym, że zapomniałem kilka razy zamknąć serwer, wyprzedzając proces i zabijając go Ctrl-C. Zamiast tego po prostu wylogowałem się z sesji ssh. Teraz kiedy uciekam jupyter notebook list dostaję

Currently running servers:
http://localhost:8934/ :: /export/home/jbalsells
http://localhost:8870/ :: /export/home/jbalsells
http://localhost:8892/ :: /export/home/jbalsells
http://localhost:8891/ :: /export/home/jbalsells
http://localhost:8890/ :: /export/home/jbalsells
http://localhost:8889/ :: /export/home/jbalsells
http://localhost:8888/ :: /export/home/jbalsells

Ja oczywiście nie chcę, aby wszystkie te serwery działały na maszynie mojej pracy, ale nie wiem, jak je zamknąć!

Kiedy uruchamiam ps nic nie dostaję:

  PID TTY          TIME CMD
12678 pts/13   00:00:00 bash
22584 pts/13   00:00:00 ps

Mam Jupyter 4.1.0 zainstalowany.

Author: Joalito, 2016-07-21

5 answers

Więc znalazłem rozwiązanie.

Ponieważ jupyter notebook list mówi, na których portach działają serwery notebooków Szukałem Pidów używając netstat -tulpn dostałem informacje z http://www.cyberciti.biz/faq/what-process-has-open-linux-port/

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       
PID/Program name    
tcp        0      0 0.0.0.0:8649            0.0.0.0:*               LISTEN      
-                   
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      
-                   
tcp        0      0 0.0.0.0:33483           0.0.0.0:*               LISTEN      
-                   
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      
39125/Xvnc          

Bez zbytniego szukania byłem w stanie znaleźć porty, których szukałem z jupyter notebook list i procesy je uruchamiające (możesz użyć grep, jeśli byłoby zbyt ciężko je znaleźć). Potem zabiłem ich z kill 8337 (lub jakakolwiek liczba była associated).

 16
Author: Joalito,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-21 19:49:10

Polecenia systemu Windows w wierszu polecenia

Należy zachować wszystkie zmiany wprowadzone w notebookach przed zakończeniem procesu serwera notebooków jupyter.

I) znajdź numer portu używany przez serwer notebooków jupyter

jupyter notebook list

Ex.)

jupyter notebook list
Currently running servers:
http://127.0.0.1:8888/ :: D:\kimkk\Documents\JupyterNotebook

Ii) znajdź identyfikatory procesów, które używają znalezionego numeru portu notebooka jupyter

netstat -ano | find "found portnumber"

Ex.)

netstat -ano | find "8888"

  TCP    127.0.0.1:8888         0.0.0.0:0              LISTENING       24140
  TCP    127.0.0.1:8888         127.0.0.1:55588        ESTABLISHED     24140
  TCP    127.0.0.1:8888         127.0.0.1:55612        ESTABLISHED     24140
  TCP    127.0.0.1:55588        127.0.0.1:8888         ESTABLISHED     6492
  TCP    127.0.0.1:55612        127.0.0.1:8888         ESTABLISHED     6492
  • znajdź wiersze z wartością drugiej kolumny równą "8888". W powyższym przykładzie pierwszy, drugi i trzeci wiersz są wierszami docelowymi. W tych wierszach można znaleźć PID w ostatniej kolumnie (np. 24140).

Iii) Zabij proces notebooka jupyter z odnalezionym PID

taskkill /PID found_PID /F

Ex.)

taskkill /PID 24140 /F
  • /F oznacza forcely kill the process.

FYI, Notatnik Jupyter z wersji 5.1 obsługuje polecenie stop w następujący sposób:

jupyter notebook stop 8888

Zobacz https://github.com/jupyter/notebook/issues/1950

 5
Author: Hongsoog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-12 03:10:20

Natknąłem się na ten sam problem i zastosowałem się do rozwiązania zamieszczonego powyżej. Chciałem tylko trochę wyjaśnić rozwiązanie.

netstat -tulpn

Wyświetli listę wszystkich aktywnych połączeń.

tcp    0   0 0.0.0.0:8888  0.0.0.0:*  LISTEN      19524/python

Będziesz potrzebował PID "19524" w tym przypadku. możesz nawet użyć poniższego kodu, aby uzyskać PID portu, który próbujesz zamknąć

fuser 8888/tcp
/ Align = "left" / 19524
kill 19524

Zamknie port

 4
Author: pramithus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-19 15:55:32

Punkt 3.3 powinien mieć do tego zastosowanie. http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

Gdy notatnik jest otwarty, jego "silnik obliczeniowy" (zwany jądrem) jest automatycznie uruchamiany. Zamknięcie karty przeglądarki notebooka nie wyłączy jądra, zamiast tego jądro będzie działać, dopóki nie zostanie jawnie zamknięte.

Aby zamknąć jądro, przejdź do powiązanego notatnika i kliknij menu Plik - > Zamknij i zatrzymaj. Alternatywnie, Pulpit Nawigacyjny notebooka ma kartę Running, która pokazuje wszystkie uruchomione Notebooki (np. jądra) i umożliwia ich wyłączanie (klikając przycisk zamykania).

 1
Author: Ceddrick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-21 18:26:53

To może pomóc:

  1. Uruchom jupyter notebook list, aby uzyskać numer portu, którego używa jupyter.
  2. Uruchom lsof -n -i4TCP:[port-number], Aby uzyskać PID. PID jest drugim polem na wyjściu.
  3. Uruchom kill -9 [PID], aby zabić ten proces.
 0
Author: ShusenTang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-02 09:03:08