「端口被占用」十次有九次是上次没退干净:换端口只止血,杀残进程才根治
启动报 Address already in use,但自己明明没开第二个实例 —— 因为「关窗口」不等于「进程退出」,服务常跑在子进程里,Ctrl+C 只断了前台。换端口能立刻起来,但残留进程会继续吃显存和内存;下次换个端口还是同样的问题。判据是 netstat 里那条 LISTENING 记录的 PID,杀掉它才算修干净。
排错端口WindowsComfyUIWebUI这条适用于
- 服务曾非正常退出(上次没退干净)
- 报的是「端口被占用」
版本指纹
Windows 11 + ComfyUI 8188;判据与命令跨平台通用
具体做法
# —— Windows:查出占用端口的 PID 并杀掉 ——
$ netstat -ano | findstr :8188
# 输出形如:TCP 0.0.0.0:8188 0.0.0.0:0 LISTENING 12345
# ^^^^^ 这个就是 PID
$ tasklist | findstr 12345 # 先确认这个 PID 是什么进程
$ taskkill /PID 12345 /F # 确认无误后再杀
# —— Linux / macOS ——
$ lsof -i :8188 # 列出占用者
$ fuser -n tcp 8188 # 只出 PID
$ kill -9 <pid>
# —— 最快止血:换端口启动 ——
$ python main.py --port 8189 # ComfyUI
$ vllm serve <model> --port 8001 # vLLM
失效边界
适用边界:判据与命令在所有平台通用;Windows 的端口残留现象在本机实测中尤其常见(资源管理器看不到、端口却被占)。两个提醒:① 杀 PID 前一定先确认那是不是自己的进程,别把系统服务或同事的任务杀掉;② 有的服务退出时端口会进入 TIME_WAIT,几分钟内自动释放,看到端口「还在」不一定真的被占。本机实测环境为 Windows 11 + ComfyUI 8188,其它端口同理。
适用边界:判据与命令在所有平台通用;Windows 的端口残留现象在本机实测中尤其常见(资源管理器看不到、端口却被占)。两个提醒:① 杀 PID 前一定先确认那是不是自己的进程,别把系统服务或同事的任务杀掉;② 有的服务退出时端口会进入 TIME_WAIT,几分钟内自动释放,看到端口「还在」不一定真的被占。本机实测环境为 Windows 11 + ComfyUI 8188,其它端口同理。