【发布时间】:2015-05-30 09:11:27
【问题描述】:
使用 root 帐户的 CentOs 6.5,我有一个可用的 Node.js Express 应用程序:
root@vps [/home/test/node]# npm start app.js
> test@0.0.1 start /home/test/node
> node ./bin/www app.js
可以看到该应用在互联网浏览器上运行。我停止应用程序并尝试永远运行它:
root@vps [/home/test/node]# forever start app.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
root@vps [/home/test/node]#
抛出一些不应该是问题的警告,看起来应该可以工作,但它没有显示在浏览器上,永远列表:
root@vps [/home/test/node]# forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] OkGm /usr/local/bin/node app.js 32222 32227 /root/.forever/OkGm.log STOPPED
root@vps [/home/test/node]#
如果我检查 OkGm.log:
error: Forever detected script exited with code: 0
为什么当我永久运行应用程序时它无法运行?
【问题讨论】:
-
应用程序退出的原因应该在日志中
error: Forever detected script exited with code: 0行之前。很可能是EACCES错误或类似错误。 -
@t.niese 日志文件中没有其他内容,只有那一行。当我尝试再次运行它时,会再次在同一行创建另一个具有不同名称的日志文件。
-
然后你要么用
try-catch块或on('error', ...)抑制错误消息,而不以通知你快速服务器 (?) 将启动的方式处理它.或者你检查一下你是否可以启动它,但它没有成功并且你没有启动它。不管是什么原因,只有你自己能找出原因。我建议在您的应用程序中添加一些日志记录。这样您就可以检测哪些步骤已执行,哪些未执行。
标签: javascript node.js express forever