使用 netstat 和 tasklist 命令排查端口占用问题
使用 netstat 和 tasklist 命令排查端口占用问题
- 使用 `netstat` 和 `tasklist` 命令排查端口占用问题
- 1. 查找端口占用的进程
- 2. 根据 PID 查找进程名称
- 3. 根据进程名称查找 PID
- 4. 终止进程
- 5. 其他常用命令
- 6. 常见命令总结
使用 netstat
和 tasklist
命令排查端口占用问题
在开发和运维过程中,端口占用是一个常见问题。本文将介绍如何使用 netstat
和 tasklist
命令快速定位并解决端口占用问题,并提供详细的命令示例和运行结果。
1. 查找端口占用的进程
使用以下命令查找占用 6379
端口的进程:
netstat -ano | findstr :6379
作用:显示所有占用 6379
端口的网络连接及其进程 ID(PID)。
示例输出:
TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 5996
解释:
0.0.0.0:6379
:本地地址和端口,表示监听所有网络接口的6379
端口。LISTENING
:状态,表示该端口正在监听连接。5996
:进程 ID,表示占用该端口的进程。
2. 根据 PID 查找进程名称
使用以下命令根据 PID 查找进程名称:
tasklist /FI "PID eq 5996"
作用:显示 PID 为 5996
的进程名称。
示例输出:
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
redis-server.exe 5996 Console 1 10,000 K
解释:
redis-server.exe
:进程名称,表示该进程是 Redis 服务。5996
:进程 ID,与netstat
命令输出的进程 ID 一致。
3. 根据进程名称查找 PID
使用以下命令根据进程名称查找对应的 PID:
tasklist /FI "IMAGENAME eq redis-server.exe"
作用:查找所有名为 redis-server.exe
的进程及其 PID。
也可以模糊查询
tasklist /FI "IMAGENAME eq redis*"
作用:查找所有以 redis
开头的进程及其 PID。
示例输出:
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
redis-server.exe 5996 Console 1 10,000 K
解释:
redis-server.exe
:进程名称。5996
:进程 ID。
4. 终止进程
使用以下命令终止指定 PID 的进程:
taskkill /PID 5996 /F
作用:强制终止 PID 为 5996
的进程。
示例输出:
成功: 已终止 PID 为 5996 的进程。
参数:
/PID
:指定进程 ID。/F
:强制终止进程。
5. 其他常用命令
-
列出所有进程:
tasklist
-
根据进程名称终止进程:
taskkill /IM notepad.exe /F
- 示例输出:
成功: 已终止进程 "notepad.exe",PID 为 1234。 成功: 已终止进程 "notepad.exe",PID 为 5678。
/IM
:指定进程名称。
- 示例输出:
-
终止进程及其子进程:
taskkill /PID 5996 /T
- 示例输出:
成功: 已终止 PID 为 5996 的进程及其子进程。
/T
:终止进程及其子进程。
- 示例输出:
6. 常见命令总结
命令 | 作用 |
---|---|
`netstat -ano | findstr :6379` |
tasklist /FI "PID eq 5996" | 根据 PID 查找进程名称。 |
tasklist /FI "IMAGENAME eq redis-server.exe" | 根据进程名称查找 PID。 |
taskkill /PID 5996 /F | 强制终止指定 PID 的进程。 |
taskkill /IM notepad.exe /F | 根据进程名称终止进程。 |
taskkill /PID 5996 /T | 终止进程及其子进程。 |
通过这些命令,可以快速定位并解决端口占用问题,同时掌握常见的进程管理操作。