Linux之删掉占用端口的进程

兔老大RabbitMQ 2024-06-16 08:07:16 阅读 98

要检查某个端口是否被占用,你可以使用 netstatss 命令。然后,根据输出来确定哪个进程占用了该端口,并使用 kill 命令结束该进程。以下是步骤和示例:

检查端口占用

使用 netstat 命令(如果系统中有的话):

netstat -tulnp | grep :PORT

或者使用 ss 命令(推荐,因为 netstat 已经被淘汰):

ss -tulnp | grep :PORT

其中 PORT 是你想要检查的端口号。这些命令的参数说明如下:

-t 表示显示 TCP 端口。

-u 表示显示 UDP 端口。

-l 表示显示正在监听的端口。

-n 表示直接显示数字形式的 IP 地址和端口,不进行域名解析。

-p 表示显示监听端口的进程号及其名称。

请注意,-p 选项通常需要 root 权限。

杀死占用端口的进程

当你知道了哪个进程占用了端口,你可以根据输出中显示的 PID(进程 ID)使用 kill 命令结束它。如果 netstatss 输出显示 PID 为 1234,你可以执行:

kill 1234

如果进程没有响应 SIGTERM 信号(kill 命令默认发送的信号),你可能需要使用 SIGKILL 信号强制结束进程,但这应该是最后的手段:

kill -9 1234

如果你不是进程的所有者,你可能需要使用 sudo 来获取足够的权限。

示例

假设你想检查端口 8080 是否被占用,你可以使用:

ss -tulnp | grep :8080

输出可能会是这样的:

tcp LISTEN 0 128 *:8080 : users:(("java",pid=1234,fd=50))

这表明 PID 为 1234 的进程(在这个例子中是一个 Java 应用)正在监听端口 8080。如果你决定结束这个进程,就可以执行:

kill 1234

或者,如果需要强制结束:

sudo kill -9 1234

请确保你了解正在结束的进程的用途,并确认结束该进程不会对系统或应用程序造成破坏。在生产环境中,应谨慎行事。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。