Не может выйти из загрузочного сервера 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
Это может помочь:
- запустите
jupyter notebook list
чтобы получить номер порта, который использует jupyter. - запустите
lsof -n -i4TCP:[port-number]
чтобы получить PID. PID является вторым полем в выводе. - запустите
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