从rc.local永远运行NodeJs

时间:2018-06-14 19:20:59

标签: node.js embedded-linux forever

我希望NodeJs服务器在启动时启动,如果它永远崩溃,请确保它保持运行。

我已经阅读了很多关于如何做的帖子以及与之相关的可能问题。 问题是我在给定的机器上有一个有限的内存,所以我被迫“#34;包含"的NodeJS。

阅读永久文档我发现可以使用以下命令完成:

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

但同样的问题仍然存在。

我的问题是:如何在启动时永远地运行关于内存的争论?

2 个答案:

答案 0 :(得分:0)

我发现this初始化脚本用于永久启动Node脚本。

答案 1 :(得分:0)

我发现的最好方法就是在脚本中设置PATH。

我在主文件夹中创建了一个sh脚本,名为launchforever.sh。 我使用#printenv命令获取了环境变量。

launchforever脚本如下所示:

#!/bin/sh
export PATH=<copied from printenv>:$PATH
forever start -c "node --max_old_space_size=30" > /dev/null

保存后,我给了它权限:

#chmod 700 /home/<user>/launchforever.sh

然后我将其添加到Cron:

#crontab -u <user> -e

在文件中我添加了:

@reboot /home/<user>/launchforever.sh