【发布时间】:2019-01-29 18:15:17
【问题描述】:
我有一个父节点进程和一个子节点进程。子进程将 Web 服务器绑定到端口 5000。父进程有时会杀死并重新启动子进程(通常是因为文件已更改)。
问题是:当第二个子进程启动时,我得到Error: listen EADDRINUSE :::5000。
奇怪的是,我用child.kill() 杀死了子进程,然后我等待它触发close 事件,然后然后我用setTimeout 等待5 秒,然后试图启动一个新的子进程......但它总是抱怨端口被占用。但是,如果我手动终止父进程(终端中的 ctrl+C)并再次运行它,我不会收到错误消息。所以杀死父级似乎是成功释放端口的唯一方法。
谁能想到会发生这种情况的原因?为什么绑定它的进程被杀死后,端口一直被占用,直到它的父进程停止?
【问题讨论】:
-
有趣,您是否使用forever 之类的东西来运行父级?
-
请提供更多信息,代码。你如何开始流程
标签: node.js