Linux 查找被占端口的进程

本文介绍如何在Linux系统中检查并释放被占用的端口。使用netstat和lsof命令定位占用8999端口的进程,并通过kill命令终止该进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Linux测试机上有个端口提示被占用:

[root@amto01 bin]# netstat -an | grep 8999
tcp        0      0 0.0.0.0:8999                0.0.0.0:*                   LISTEN   

 

通过lsof命令得到占用此端口的进程:

[root@amto01 bin]# lsof -i :8999
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    4120 root   19u  IPv4  14838      0t0  TCP *:bctp (LISTEN)


确认后,可以将其杀掉:

[root@amto01 bin]# lsof -i :8999

 

### Linux 查找端口被占用的进程命令 在 Linux 系统中,可以使用以下方法来查找某个特定端口被哪个进程占用。 #### 方法一:使用 `netstat` 命令 通过执行以下命令,可以查看指定端口被哪个进程占用: ```bash netstat -tunpl | grep 端口号 ``` 此命令会显示监听该端口进程及其 PID[^1]。其中参数含义如下: - `-t`: 显示 TCP 连接。 - `-u`: 显示 UDP 连接。 - `-n`: 不解析主机名和服务名称,直接显示 IP 地址和端口号。 - `-p`: 显示与套接字关联的程序/进程 ID (PID) 和名称。 - `-l`: 仅列出正在监听的连接。 #### 方法二:使用 `ss` 命令 对于较新的 Linux 发行版,推荐使用更高效的 `ss` 命令替代 `netstat`: ```bash ss -tunlp | grep 端口号 ``` 这条命令的功能类似于 `netstat`,但它通常运行速度更快,并提供类似的输出结果[^2]。 #### 方法三:根据 PID 查询进程详细信息 一旦获取到占用端口进程 PID,可以通过以下两种方式进一步查询进程的具体信息: 1. 使用 `ps` 命令: ```bash ps -ef | grep 进程PID ``` 或者: ```bash ps -aux | grep 进程PID ``` 上述命令能够展示关于目标进程的更多信息,例如用户名、CPU 和内存消耗情况等[^3]。 2. 如果需要了解进程的工作目录,则可利用 `/proc` 文件系统中的数据: ```bash ll /proc/进程PID/cwd ``` 此操作可以帮助确认进程当前工作路径的位置。 #### 杀死占用端口进程 当发现某端口已被其他不需要的服务占据时,可通过发送信号终止它。最常用的方法是基于其 PID 执行 kill 操作: ```bash kill -9 进程PID ``` 以上就是完整的流程,在实际应用过程中可以根据具体情况灵活调整使用的工具和技术手段。 ```python # 示例 Python 脚本用于自动化检测并释放指定端口上的阻塞服务 import os port = input("请输入要检查的端口:") result = os.popen(f"lsof -i:{port}").read() if result != "": pid = result.split()[10] print(f"{port}端口正由{pid}号进程占用.") confirm = input("是否立即停止该进程?(y/n): ") if(confirm.lower() == 'y'): os.system(f"kill -9 {pid}") else: print(f"{port}端口未被任何已知进程占用.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值