it-roy-ru.com

не может выйти из работающего сервера ноутбука Jupyter

Я использую ноутбук Jupyter для проекта. Так как я ssh в кластер Linux на работе я использую

ssh -Y -L 8000:localhost:8888 [email protected]

Затем я запускаю записную книжку с помощью jupyter notebook --no-browser &, чтобы продолжить использование терминала. Затем на моей локальной машине я открываю localhost:8000 и продолжаю свою работу.

Моя проблема в том, что я несколько раз забывал закрыть сервер, упрощая процесс и убивая его с помощью Ctrl-C. Вместо этого я просто вышел из сеанса SSH. Теперь, когда я запускаю jupyter notebook list, я получаю

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

Я, очевидно, не хочу, чтобы все эти серверы работали на компьютере моей работы, но я не знаю, как их закрыть!

Когда я запускаю PS, я ничего не получаю:

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

У меня установлен Jupyter 4.1.0.

17
Joalito

Поэтому я нашел решение.

Так как jupyter notebook list сообщает, на каких портах работают серверы ноутбуков, я искал PID с помощью netstat -tulpn, я получил информацию от 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          

Не глядя слишком усердно, я смог найти порты, которые я искал из jupyter notebook list, и процессы, которые их запускали (вы могли бы использовать grep, если их было слишком сложно найти). Затем я убил их с помощью kill 8337 (или любого другого числа).

18
Joalito

Команды систем Windows в командной строке

Будьте осторожны, чтобы сохранить все изменения, сделанные в ваших записных книжках, перед тем как завершить процесс сервера ноутбуков jupyter.

i) найти номер порта, используемый сервером ноутбуков jupyter

jupyter notebook list

напр.)

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

ii) найти идентификаторы процессов, которые используют найденный номер порта ноутбука Jupyter

netstat -ano | find "found portnumber"

напр.)

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
  • найти строки со значением второго столбца, равным "8888". В приведенном выше примере первая, вторая и третья строки являются целевыми строками. В этих строках вы можете найти PID в последнем столбце (например, 24140).

iii) убить процесс ноутбука jupyter с помощью найденного PID

taskkill /PID found_PID /F

напр.)

taskkill /PID 24140 /F
  • / F означает принудительное завершение процесса.

К сведению, ноутбук Jupyter версии 5.1 поддерживает команду остановки следующим образом:

jupyter notebook stop 8888

обратитесь к https://github.com/jupyter/notebook/issues/1950

7
Hongsoog

Я столкнулся с той же самой проблемой и следовал за решением, отправленным выше. Просто хотел немного прояснить решение.

netstat -tulpn

перечислит все активные соединения.

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

в этом случае вам понадобится PID "19524". Вы можете даже использовать следующее, чтобы получить PID порта, который вы пытаетесь завершить

fuser 8888/tcp

это также даст вам 19524.

kill 19524

закроет порт

4
pramithus

Это может помочь:

  1. запустите jupyter notebook list, чтобы получить номер порта, который использует jupyter. 
  2. запустите lsof -n -i4TCP:[port-number], чтобы получить PID . PID - это второе поле в выводе.
  3. запустите kill -9 [PID], чтобы убить этот процесс.
2
ShusenTang

Используйте следующую команду, чтобы остановить ноутбук Jupyter, работающий на порту 8888: 

fuser -k 8888/tcp 
1
smsarwar

Раздел 3.3 должен быть применим к этому . http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html

Когда ноутбук открывается, его «вычислительный движок» (называемый ядром) запускается автоматически. Закрытие вкладки браузера ноутбука не приведет к выключению ядра, вместо этого ядро ​​продолжит работать до тех пор, пока не будет явно отключено.

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

1
Ceddrick