【发布时间】:2018-06-14 19:20:58
【问题描述】:
我希望 NodeJs 服务器在启动时启动,并确保它在永远崩溃时保持运行。
我已经阅读了很多关于如何做到这一点以及与之相关的可能问题的帖子。 问题是我在给定机器上的可用内存有限,所以我不得不“包含”NodeJs。
阅读forever文档发现可以使用命令完成:
forever start -c "node --max_old_space_size=512" myapp.js
以这种方式永远调用传递内存参数的节点服务器,在这种情况下,将堆限制为 512 MB。 所以我为 rc.local 编写了我的 sh 脚本,如下所示:
#!/bin/sh
cd /forever_bin_dir
./forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js
由于 rc.local 使用有限的环境变量,无法找到“节点”并且脚本失败。
我什至尝试使用 Cron 在其文件中添加以下行:
@reboot /forever_bin_dir/forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js
但同样的问题仍然存在。
我的问题是:我怎样才能在启动时永远运行,同时传递关于内存的参数?
【问题讨论】:
-
你试过在没有
forever的情况下运行命令吗? -
说实话不,因为我需要永远。我尝试了在启动时启动 Node.Js 的脚本,但没有内存限制,它可以工作。
-
尝试使用内存限制手动运行节点
-
它在内存限制下手动工作。我没有在 rc.local 中尝试过。
-
警告如果您的命令连续运行(可能运行无限循环)或可能不会退出,您必须确保通过在命令末尾添加一个&符号来分叉进程raspberrypi.org/documentation/linux/usage/rc-local.md
标签: node.js embedded-linux forever