我相当确定这是节点 v0.10.18 中的一个错误,但它在我的机器上造成了污染,我不知道如何清除。
我有这个简单的 tcp 服务器(咖啡)脚本:
net = require 'net'
server = net.createServer ->
server.listen 'localhost:4545'
当我使用运行它coffee z.coffee
然后按Ctrl+C中断它时,由于 EADDRINUSE 异常,我无法在同一端口上再次运行它。该过程在不同的端口上重复,结果相同。
我知道有关类似问题的其他答案,但他们无法解决我的问题,因为即使重新启动机器(osx ml)仍然会使端口被阻塞。显然,ps -A | grep node
也没有显示任何内容。
我该怎么做才能再次释放卡住的端口?
编辑
以下是评论的摘要。似乎节点默认使用 SO_REUSEADDR,所以 TIME_WAIT 应该不是问题,特别是因为端口已经卡住了一个多小时。netstat 和 lsof 作为 root 都没有使用端口显示任何内容,多次重新启动,也没有杀死除基本程序之外的所有程序都有助于解决问题。没有VPN或防火墙。