EADDRINUSE 端口占用
EADDRINUSE:端口已被占用
症状
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (node:net:1817:16)
at listenInCluster (node:net:1865:12)
at Server.listen (node:net:1953:7)
30 秒排查
1. 先确认是哪个端口被占:`lsof -i :3000`
2. 看占用它的是不是自己上次没关干净的进程:`ps -p <PID> -o pid,comm`
3. 是旧进程就结束它 `kill <PID>`;不是的话换个端口启动,例如 `PORT=3001 npm start`
为什么会这样
同一个端口同一时间只能有一个程序监听;上一次启动的程序还在后台跑着,新的就起不来。
涉及的名词
[端口] [进程] [Socket]
相关场景
· curl 返回 401
· ModuleNotFoundError
📚 想深入
→ 《册2》第 3 章:网络的门牌号