如何查找(并终止)在某个端口上运行的进程?

如何查找(并终止)在某个端口上运行的进程?

可能重复:
在 Linux 中查找使用某个端口的进程

我正在使用 Ubuntu Linux 11.04。如何编写一个 shell 脚本表达式来查找在端口 4444 上运行的进程,然后终止该进程?

答案1

您可以使用以下lsof方法来查找进程:

lsof -t -i:4444

只会列出监听端口 4444 的进程的 pid。你也可以这样写

kill `lsof -t -i:4444`

如果你够勇敢的话。

答案2

你用lsof

# lsof -n | grep TCP | grep LISTEN | grep 4444

输出结果如下:

pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)

第一列是进程名称,第二列是进程 ID。然后解析输出,找出进程 ID (PID) 并使用kill命令将其终止。

答案3

kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`

使用 netstat 列出具有数字端口和父进程的监听 INET 套接字。过滤字符串 4444,取出第 7 列(pid/进程名称),然后进一步用“/”将其拆分以获取 pid。将其传递给 kill 命令。

答案4

或者,您可以使用netstat -aplsof在您的系统上不可用(因为它不在我经常使用的 busybox 系统上)。

相关内容