6

以前,我通过以下方式启动了我的生产节点应用程序:

NODE_ENV=production forever start index.js

但是,根据这个问题中的建议,我想用--nouse-idle-notification 启动节点。我还发现了这篇关于设置 --max-old-space-size 等的文章。不幸的是,我问的任何人似乎都无法弄清楚如何判断该标志是否被节点实际接受,所以我不知道如何判断如果我永远的语法是正确的。

此外,我不能永远接受这两个论点......

例如,如果我使用这个

NODE_ENV=production forever start --max-old-space-size=8192 --nouse-idle-notification index.js

我得到了“永远使用信息”,就好像我试图永远启动而不传递 .js 文件来运行(例如,只需输入“永远”)。如果我将标志放在“开始”命令之前,它似乎开始了,但我再次不确定如何判断标志是否被接受......

有人可以帮我正确的语法吗?

4

3 回答 3

15

您需要传递 -c 参数:

forever start -c "node --max-old-space-size=8192 --nouse-idle-notification" index.js

如果您列出流程,您将看到这些标志已被尊重。

forever list
于 2014-01-15T17:43:35.933 回答
1

除非你真的因为其他原因而永远爱着,否则试试mon

传递标志非常容易,因为您可以指定确切的命令:

mon "node --max-old-space-size=8192 --nouse-idle-notification --expose-gc server.js" -d

它只监视一个节点进程。如果您想像永远一样监视一组进程,请安装mongroup,它是一个管理mon.

这将为您节省一些 RAM,特别是如果您正在监视大量节点进程(我认为永远为您要监视的每个进程启动一个额外的节点进程)。

快速提示:上次我检查时,TJ Holowaychuk 的分支mon在 linux 下运行不佳(我猜他只在 Mac 上测试过),但是这个可以工作,而且我现在正在使用它。编辑:实际上 2 天前问题已关闭,主分支现在应该可以工作了。

于 2012-11-12T16:48:36.533 回答
-1

你可以试试:

forever start --max-old-space-size=8192 --nouse-idle-notification -c "NODE_ENV=production node" index.js 
于 2012-10-15T18:07:20.507 回答