Windows 系统如何查找端口占用情况,并结束进程

开发中总会遇到下面的情况,像:

  • Address already in use: bind
  • Address localhost:8080 is already in use
  • web server failed to start. Port 9009 was already in use.
    像这些,很明显就是端口被占用了。
    要想应用或系统正常启用,要么换一个端口,要么找到谁占用心仪的端口,然后kill掉。
    下面就说下后一种方法。
  1. 查找占用指定端口的进程ID netstat -ano | findstr "端口号"
C:\Users\admin>netstat -ano | findstr "3333"
  TCP    0.0.0.0:3333           0.0.0.0:0              LISTENING       4352
  TCP    100.1.4.111:3333        100.1.4.76:64932        ESTABLISHED     4352
  TCP    100.1.4.111:3333        100.1.4.111:51708       ESTABLISHED     4352
  TCP    100.1.4.111:3333        100.1.4.176:49323       ESTABLISHED     4352
  TCP    100.1.4.111:51708       100.1.4.111:3333        ESTABLISHED     4352
  TCP    [::]:3333              [::]:0                 LISTENING       4352

其中端口号不加双引号也可以。

"netstat" 命令部分参数:
-a:--all,显示计算机正在侦听的所有活动 TCP 连接以及 TCP 和 UDP 端口。
-n:显示活动的 TCP 连接,地址和端口号以数字表示
-o:显示活动的 TCP 连接,并包括每个 (PID) 的进程 ID。

想进一步了解的可以参考netstat

2.查看进程ID对用的应用信息tasklist | findstr "4352"

C:\Users\admin>tasklist | findstr "4352"
java.exe                      4352 Console                    1  1,420,204 K

3.结束进程,释放端口(一定要确定这个应用没有用,再杀掉taskkill /t /f /pid 端口号

C:\Users\admin>taskkill /t /f /pid 4352

"taskkill" 命令部分参数:
/t:结束指定进程以及由该进程启动的任何子进程。
/f:指定强制结束进程。 对于远程进程,此参数将被忽略。所有远程进程都被强制结束。
/pid <processID> 指定要终止的进程的进程 ID。

想进一步了解的可以参考taskill

posted @ 2022-10-19 16:38  mayhot  阅读(313)  评论(0编辑  收藏  举报