根据端口号查杀进程
约 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