杀端口要区分服务端与客户端连接
一、踩的坑
清理 3456 端口时,lsof -ti:3456 返回的列表里除了 next-server,还混着 Chrome 的渲染进程(它们只是连接到 3456 的客户端,不是服务端)。一把 xargs kill -9 把整个列表都杀了。
二、影响与恢复
浏览器主进程(另一个 PID、已运行数天、13 个子进程)没有被误杀,被杀的只是渲染进程与 3456 的 socket 连接,Chrome 会自动重建连接。所以这次是虚惊,但同样的手法用在别的端口上完全可能真的关掉用户的东西。
三、正确做法
lsof -i:3456 # 先看 COMMAND / PID / 连接方向
kill <next-server 的 PID> # 只杀服务进程
-t 只输出 PID,丢掉了判断依据;排查端口占用时不要用它一把梭。
相关
- 讲bug先讲现象再讲根因
- 高负载发烫先排除负载而非硬件
- 同一应用开出两个窗口先查单实例限制 —— 同类:先分清有几个进程,再动手