Skip to content

根据端口号查杀进程

约 429 字大约 1 分钟

2025-05-12

前言

首先来看一段报错,经常写代码的朋友可能会见到类似一下的报错

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 9908 was already in use.

Action:

Identify and stop the process that's listening on port 9908 or configure this application to listen on another port.

原因分析如下:

  • 端口冲突(最常见原因) 当前 Spring Boot 应用尝试启动内嵌的 Web 服务器(如 Tomcat、Jetty)时,试图绑定到端口 9908,但该端口已经被另一个进程占用。
  • 同一应用重复启动 你可能已经运行了一次该 Spring Boot 应用了,没有正常关闭,又尝试再次启动,导致端口仍然被占用。
  • 其他服务占用了相同端口 操作系统上运行的其他服务或程序(比如数据库、Nginx、Docker 容器等)可能配置为使用 9908 端口。
  • 未正确释放端口 即使之前的应用已关闭,某些情况下操作系统仍可能短暂保留端口(处于 TIME_WAIT 状态),尤其是在频繁重启时。

常规操作

1.查找占用端口的进程

  • 打开终端或命令行工具。
  • 执行以下命令:
netstat -ano | findstr :9908
  • 获取到占用端口的进程ID(PID)。

2.终止占用端口的进程 根据上一步获取的PID,执行以下命令来终止进程(将 <PID> 替换为实际的进程ID):

taskkill /F /PID <PID>

代码

chcp 65001

@echo off

setlocal enabledelayedexpansion

set /p port=请输入端口号:

for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%port%"') do (

    set pid=%%e

    taskkill /f /pid !pid!

)

pause

Power by VuePress & vuepress-theme-plume