无法退出jupyter笔记本服务器运行

Joa*_*ito 19 python server jupyter jupyter-notebook

我正在使用Jupyter Notebook进行项目.因为我在工作中使用ssh进入linux集群

ssh -Y -L 8000:localhost:8888 user@host
Run Code Online (Sandbox Code Playgroud)

然后我启动笔记本电脑,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
Run Code Online (Sandbox Code Playgroud)

我显然不希望所有这些服务器都在我的工作机器上运行,但我不知道如何关闭它们!

当我运行ps时我什么也得不到:

  PID TTY          TIME CMD
12678 pts/13   00:00:00 bash
22584 pts/13   00:00:00 ps
Run Code Online (Sandbox Code Playgroud)

我安装了Jupyter 4.1.0.

Joa*_*ito 20

所以我找到了解决方案.

既然jupyter notebook list告诉你笔记本服务器正在运行哪些端口我使用http://www.cyberciti.biz/faq/what-process-has-open-linux-port/netstat -tulpn获取的信息来查找PID .

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          
Run Code Online (Sandbox Code Playgroud)

看起来没那么难,我能够找到我知道要查找的端口jupyter notebook list以及运行它们的进程(grep如果找不到它们,你可以使用它们).然后我用它们kill 8337(或者与之相关的任何数字)杀死它们 .

  • 看起来在最近的更新中“jupyter notebook stop 8888”将阻止笔记本在端口 8888 上运行。 (3认同)

小智 12

使用以下命令停止在端口 8888 上运行的 Jupyter notebook:

fuser -k 8888/tcp 
Run Code Online (Sandbox Code Playgroud)


小智 10

这可能有帮助:

  1. 运行jupyter notebook list以获取 jupyter 使用的端口号。
  2. 运行lsof -n -i4TCP:[port-number]以获取PID。PID 是输出中的第二个字段。
  3. 运行kill -9 [PID]以终止此进程。


Hon*_*oog 8

命令提示符下的Windows系统命令

在杀死jupyter笔记本服务器进程之前,请小心保存笔记本中所做的所有更改.

i)找到jupyter笔记本服务器使用的端口号

jupyter notebook list
Run Code Online (Sandbox Code Playgroud)

前).

jupyter notebook list
Currently running servers:
http://127.0.0.1:8888/ :: D:\kimkk\Documents\JupyterNotebook
Run Code Online (Sandbox Code Playgroud)

ii)找到使用找到的jupyter笔记本端口号的进程ID

netstat -ano | find "found portnumber"
Run Code Online (Sandbox Code Playgroud)

前).

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
Run Code Online (Sandbox Code Playgroud)
  • 查找第二列值等于"8888"的行.在上面的例子中,第一,第二和第三行是目标行.在这些行中,您可以在最后一列中找到PID(例如24140).

iii)用找到的PID杀死jupyter笔记本进程

taskkill /PID found_PID /F
Run Code Online (Sandbox Code Playgroud)

前).

taskkill /PID 24140 /F
Run Code Online (Sandbox Code Playgroud)
  • / F表示强制终止进程.

仅供参考,版本5.1的Jupyter笔记本支持停止命令,如下所示:

jupyter notebook stop 8888
Run Code Online (Sandbox Code Playgroud)

请参阅https://github.com/jupyter/notebook/issues/1950


小智 5

我遇到了同样的问题,并遵循了上面发布的解决方案。只是想澄清一点解决方案。

netstat -tulpn
Run Code Online (Sandbox Code Playgroud)

将列出所有活动的连接。

tcp    0   0 0.0.0.0:8888  0.0.0.0:*  LISTEN      19524/python
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您将需要PID“ 19524”。您甚至可以使用以下命令获取您要关闭的端口的PID

fuser 8888/tcp
Run Code Online (Sandbox Code Playgroud)

这也会给您19524。

kill 19524
Run Code Online (Sandbox Code Playgroud)

将关闭端口