我有一个node.js应用程序,它执行mysql db访问、几个http请求、将响应csv保存到一个文件、读取同一个文件并写入cassandra。我在ubuntu 14.04上运行它,并使用express来公开一个web api来完成上述所有任务。
我用node.js编写了另一个应用程序,它为200个用户调用api。因为是node.js,所以调用是异步的。
我使用以下方式运行Express应用程序:

node index.js

当我运行另一个脚本(该脚本命中express api)时,该脚本对200个用户运行良好,并有一个响应:
{"status":200,"message":"Got the data and saved to the DB"}
当我使用Forever运行同一个Express应用程序时:
forever start -w index.js

然后为200个用户运行cron脚本,我得到
err { [Error: socket hang up] code: 'ECONNRESET' }
当我打开日志文件时,我发现:
error: restarting script because add changederror: Forever detected script was killed by signal: SIGKILLerror: Script restart attempt #5
既然应用程序在前台运行时运行良好,在后台运行时被终止,那么它是否必须对分配给守护进程的资源做些什么?
我应该启动服务器吗?或者有什么方法可以为Express应用分配更多资源?

最佳答案

似乎您无法通过提取新代码来更改文件或文件属性。
尝试为隐藏的子目录配置.foreverignore,如下所述
https://github.com/foreverjs/forever/issues/235
如果不能忽略或停止更新需要停止使用forever监视文件更新的文件
我可以推荐在Linux机器上运行nodejs应用程序

关于node.js - 在Forever上运行时,NodeJS脚本被SIGKILL杀死,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32324973/

10-10 00:30
查看更多