我正在使用Jupyter Notebook进行项目。因为我在工作中使用
进入Linux集群ssh -Y -L 8000:localhost:8888 user@host
然后我用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。
答案 0 :(得分:20)
所以我找到了解决方案。
由于jupyter notebook list
告诉您笔记本服务器正在运行哪些端口,我使用netstat -tulpn
查找了PID我从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
(或与之关联的任何数字)。
答案 1 :(得分:8)
命令提示符下的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笔记本端口号的进程ID
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
iii)用找到的PID杀死jupyter笔记本进程
taskkill /PID found_PID /F
例)
taskkill /PID 24140 /F
仅供参考,版本5.1的Jupyter笔记本支持停止命令,如下所示:
jupyter notebook stop 8888
答案 2 :(得分:5)
我遇到了同样的问题,并按照上面发布的解决方案。只是想稍微澄清一下解决方案。
fopen(/storage/data.csv): failed to open stream: No such file or directory
将列出所有活动连接。
netstat -tulpn
在这种情况下你需要PID“19524”。您甚至可以使用以下内容来获取您尝试关闭的端口的PID
tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 19524/python
这也会给你19524。
fuser 8888/tcp
将关闭端口
答案 3 :(得分:3)
这可能会有所帮助:
jupyter notebook list
以获取jupyter使用的端口号。 lsof -n -i4TCP:[port-number]
以获取PID。
PID是输出中的第二个字段。kill -9 [PID]
以终止此过程。答案 4 :(得分:1)
第3.3节应适用于此。 http://jupyter-notebook-beginner-guide.readthedocs.io/en/latest/execute.html
打开笔记本时,会自动启动其“计算引擎”(称为内核)。关闭笔记本浏览器选项卡,不会关闭内核,而是内核将继续运行,直到明确关闭。
要关闭内核,请转到相关的笔记本,然后单击菜单文件 - >关闭并停止。或者,Notebook Dashboard有一个名为Running的选项卡,显示所有正在运行的笔记本(即内核)并允许关闭它们(通过单击Shutdown按钮)。
答案 5 :(得分:1)
使用以下命令停止在端口8888上运行的Jupyter Notebook:
fuser -k 8888/tcp
答案 6 :(得分:1)
这是一个bash脚本,它将根据@Joalito和@Hongsoog给出的答案一次性杀死所有活动的Jupyter笔记本服务器:
#!/bin/bash
jupyter notebook list | {
while IFS= read -r line
do
port=`echo "$line" | grep -o -P '(?<=localhost:).*(?=/ :)'`
echo "killing jn in port $port"
if [ -z "$port" ]
then
netstat -tulpn | grep "$port" | grep -o -P '(?<=LISTEN ).*(?=/py)' | xargs kill -15
fi
done
}
答案 7 :(得分:0)
在笔记本上,欢迎页面命名为“文件”,您可以在其旁边看到“正在运行”。您可以在其中关闭计算机并查看正在运行的笔记本