SuperAPI AI 工具集

detecting-port-conflicts

通用与其它

查看项目

更新于 10-15 21:05

技能介绍

用途:当开发服务器因端口被占用而启动失败时,帮助诊断并解决端口冲突。

主要能力:从终端输出中识别端口冲突信号,包括 EADDRINUSE、address already in use、Port XXXX is already in use、bind: address already in use、OSError: [Errno 98] Address already in use,并从报错信息中提取端口号。

诊断方式:使用 lsof -i :<PORT> -P -n 查看占用该端口的 PID、进程名和用户。常见占用来源包括未正常关闭的旧开发服务器、其他项目的开发服务器、Docker 容器或系统服务。

解决选项:一是结束阻塞进程,先 kill <PID>,若无效再用 kill -9 <PID>,然后重启原服务器;二是改用其他端口,先用 lsof -i :<PORT+1> -P -n 检查下一端口是否空闲,再调整启动配置,如 Next.js 用 next dev -p <PORT>、Vite 用 vite --port <PORT>、Express 设置 PORT 环境变量、Django 用 python manage.py runserver <PORT>;三是结束所有 node 进程,命令为 killall node,仅在用户确认后建议,因为会终止全部相关进程。

提示与限制:macOS 上低于 1024 的端口需要 root 权限;Docker 容器即使停止也可能保留端口绑定,可检查 docker ps;若 lsof 无输出,端口可能处于 TIME_WAIT 状态,可等待约 30 秒或改用其他端口。资料未提供更多平台或收费信息。