Не может выйти из загрузочного сервера jupyter

Я использую Jupyter Notebook для проекта. Поскольку я 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.

Ответы

Ответ 1

Итак, я нашел решение.

Так как 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 (или какой-либо номер был связан).

Ответ 2

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

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

я) найти номер порта, используемого сервером ноутбука 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

Ответ 3

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

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

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

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

Ответ 5

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

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

Чтобы закрыть ядро, перейдите к соответствующему ноутбуку и нажмите на меню Файл → Закрыть и остановить. Кроме того, на панели мониторинга ноутбука есть вкладка "Запуск", которая отображает все работающие ноутбуки (например, ядра) и позволяет отключить их (нажав кнопку "Отключение" ).

Ответ 6

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

fuser -k 8888/tcp