自安装PM2后无法启动节点应用程序

时间:2013-09-20 00:22:15

标签: javascript node.js

我已经安装了PM2以保持我的节点应用程序运行。 (https://github.com/Unitech/pm2

但是效果很好......

自从用它安装和运行我的应用程序

  

pm2启动app.js   pm2停止应用

我无法再使用

运行我的应用
  

节点app.js

相反,我收到以下错误:

domain.js:66
    throw er;
          ^
Error: listen EADDRINUSE
    at errnoException (net.js:770:11)
    at Server._listen2 (net.js:910:14)
    at listen (net.js:932:10)
    at Server.listen (net.js:998:5)
    at Function.app.listen (/home/ssp/node_modules/express/lib/application.js:535:24)
    at Object.<anonymous> (/home/ssp/app.dev.js:22:5)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

当您尝试两次运行相同的操作时,通常会发生此错误。

然而app.js没有运行。我已经在PM2中停止了它。当我输入

ps aux | grep node

要检查它是否仍然存在,则不是。

卸载PM2似乎无法解决此问题。有什么想法发生了什么?

2 个答案:

答案 0 :(得分:6)

总的来说,这意味着您有一个在同一端口上运行的进程,您可以使用以下命令将其终止:

sudo kill $(sudo lsof -t -i:8080)

只需将8080替换为您的服务器端口

答案 1 :(得分:3)

如果您遇到此问题,请执行以下操作:

pm2 kill

(它杀死pm2并释放端口)

这个bug真的很奇怪,只影响v0.10.x节点版本。

我建议您使用节点v0.11.10