在软件开发的世界中,遇到意外问题和错误非常普遍。最近,我发现自己处于一个令人沮丧的困境中,存在一个持久的问题:每次我试图终止它时,端口3000都会不断产生一个新的节点过程。在我们的沙盒服务器上工作时,出现了这个问题,特别是当我使用Docker对前端应用程序进行容器时。
在本文中,我将分享解决此问题的故障排除的旅程,提供有关遇到的错误消息的见解以及纠正这种情况的各种尝试。
加入我,当我深入研究最终解决持久端口3000问题并重新控制流程管理的步骤时。
因此,我使用Docker在Sandbox Branch(SCM)上的前端应用程序中插入了服务器。容器还将使用端口3000,并且只有在尝试运行容器时才发现此问题。
不断出现的错误消息是:
docker: Error response from daemon: driver failed programming external connectivity
on endpoint chronicle-interface-sandbox
(fc5d353d06147d84888ffa88ace289e767f7fecf6ce4890cacc6870618a3a07d):
Error starting userland proxy: listen tcp4 0.0.0.0:300
另外,当我运行命令
时
npm run dev
在公共文件夹上,它还给出了下面的输出:
> dev
> next dev -H 0.0.0.0 -p 3000
Port 3000 is already in use.
所以,我尝试了以下方法修复它,
检查运行端口3000的过程
lsof -i :3000
我确定了过程ID并杀死它们,
kill <PID>
每次我杀死一个过程时,另一个都用另一个ID旋转。
我还尝试直接停止node.js进程,而无需pid
pkill -f "node.*3000"
它仍然没有解决问题。
我做的最后一件事是重新启动Azure VM,然后将其修复:
sudo shutdown -r now
注意:您也可以从Azure门户重新启动服务器,一旦服务器返回在线,您将需要再次进入它以访问并继续工作。