如何确定哪个进程在Linux中使用端口

时间:2016-10-11 09:34:16

标签: python linux rethinkdb

我目前正在其默认端口上运行RethinkDB,因为如果我将浏览器指向from PyQt5.QtWidgets import QFileDialog ,我会看到RethinkDB Web界面:

enter image description here

我想关闭RethinkDB并使用localhost:8080参数在另一个端口上重新打开它。但是,到目前为止,我还无法使用--port-offset方法从Python中关闭它。

相反,我想通过简单地使用该端口杀死进程来尝试强制方法。我尝试使用conn.close()确定哪个进程,但这不会产生任何结果:

netstat

如何杀死RethinkDB进程以使端口再次可用?

5 个答案:

答案 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)

查看手册页了解更多信息