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.
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).
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
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
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).
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:
- Uruchom
jupyter notebook list
, aby uzyskać numer portu, którego używa jupyter. - Uruchom
lsof -n -i4TCP:[port-number]
, Aby uzyskać PID. PID jest drugim polem na wyjściu. - Uruchom
kill -9 [PID]
, aby zabić ten proces.
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