在Forever上运行时,NodeJS脚本被SIGKILL杀死

时间:2015-09-01 06:31:37

标签: node.js forever sigkill

我有一个Node.JS应用程序,它执行MySQL数据库访问,一些HTTP请求,将响应CSV保存到文件,读取同一文件并写入Cassandra。我在Ubuntu 14.04上运行它并且我使用Express来公开执行上述所有任务的Web API。

我有另一个用Node.JS编写的应用程序,它为200个用户调用API。由于它是Node.JS,因此调用是Async。

我使用以下方式运行Express应用程序:

node index.js

当我运行另一个命中Express API的脚本时,脚本可以为200个用户运行,并且有响应:

{"status":200,"message":"Got the data and saved to the DB"}

当我使用Forever运行相同的Express App时:

forever start -w index.js

然后为200个用户运行cron脚本,我得到了

err { [Error: socket hang up] code: 'ECONNRESET' }

当我打开日志文件时,这就是我发现的:

error: restarting script because add changed error: Forever detected script was killed by signal: SIGKILL error: Script restart attempt #5

既然App在前台运行时运行良好并且在后台运行时被杀死,那么它是否需要做一些关于为守护进程分配多少资源的事情?

我应该启动服务器吗?或者有什么方法可以为Express App分配更多资源吗?

1 个答案:

答案 0 :(得分:3)

通过提取新代码,您似乎无法更改文件或文件属性。

尝试为隐藏的子目录配置.foreverignore,如此处所述

https://github.com/foreverjs/forever/issues/235

如果您无法忽略或停止更新这些文件,则需要永久停止使用以观看文件更新

我可以推荐http://supervisord.org/在Linux机器上运行nodejs app