我目前正在其默认端口上运行RethinkDB,因为如果我将浏览器指向from PyQt5.QtWidgets import QFileDialog
,我会看到RethinkDB Web界面:
我想关闭RethinkDB并使用localhost:8080
参数在另一个端口上重新打开它。但是,到目前为止,我还无法使用--port-offset
方法从Python中关闭它。
相反,我想通过简单地使用该端口杀死进程来尝试强制方法。我尝试使用conn.close()
确定哪个进程,但这不会产生任何结果:
netstat
如何杀死RethinkDB进程以使端口再次可用?
答案 0 :(得分:4)
1. lsof -i:8080
2. kill $(lsof -t -i:8080)
or
2 . kill -9 $(lsof -t -i:8080)
答案 1 :(得分:0)
根据Klaus D.的评论,我使用netstat -nlp
确定了该过程:
kurt@kurt-ThinkPad:~$ netstat -nlp | grep 8080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.1.1:8080 0.0.0.0:* LISTEN 2229/rethinkdb
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 2229/rethinkdb
tcp6 0 0 ::1:8080 :::* LISTEN 2229/rethinkdb
参数代表
numeric
(显示数字地址,而不是尝试确定符号主机,端口或用户名)listening
(仅显示侦听套接字(默认情况下省略))program
(显示每个套接字所属程序的PID和名称)分别
答案 2 :(得分:0)
很棒的答案@codespy。 我做了一个bash文件并像这样写了。
杀死$(lsof -t -i:8000)
并保存它和脚本文件。
并且可执行 $ chmod + x script_filename
现在我只是通过输入来运行 ./script_filename
答案 3 :(得分:0)
要查找pid或有关被指控的特定端口的所有信息
sudo lsof -i :PORT_NUMBER
杀死进程或事件
kill -9 PID
示例:-
harshit@harshit:~/Desktop/edwin-diaz/cms$ lsof -i :4111
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 9215 harshit 33u IPv6 297470 0t0 TCP *:4111 (LISTEN)
harshit@harshit:~/Desktop/edwin-diaz/cms$ kill -9 9215
答案 4 :(得分:0)
有一个简单的解决方案,一些Unix/Linus有命令ss,这是类似于netstat的新一代命令,你可以简单地输入以下内容:>
ss -ltnp
-p
列出进程号
-l
列出监听套接字
-t
列出 tcp 套接字
-n
列出端口号而不是常规名称(21 代替 ssh)
查看手册页了解更多信息