运行 来自 rc.local 的 NodeJs 永远
Running forever for NodeJs from rc.local
我希望 NodeJs 服务器在启动时启动,并确保它在永远崩溃时保持运行。
我已经阅读了很多关于如何操作以及与之相关的可能问题的帖子。
问题是我在给定机器上的可用内存有限,所以我不得不 "contain" 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 使用有限的环境变量,无法找到 "node" 并且脚本失败。
我什至尝试将 Cron 添加到其文件中:
@reboot /forever_bin_dir/forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js
但同样的问题仍然存在。
我的问题是:我怎样才能 运行 在启动时永远传递关于内存的参数?
我发现 this 用于相同目的的初始化脚本永远启动 Node 脚本。
我发现的最好方法就是在脚本中设置 PATH。
我在名为 launchforever.sh 的主文件夹中创建了一个 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
我希望 NodeJs 服务器在启动时启动,并确保它在永远崩溃时保持运行。
我已经阅读了很多关于如何操作以及与之相关的可能问题的帖子。 问题是我在给定机器上的可用内存有限,所以我不得不 "contain" 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 使用有限的环境变量,无法找到 "node" 并且脚本失败。
我什至尝试将 Cron 添加到其文件中:
@reboot /forever_bin_dir/forever start -c "node --max_old_space_size=512" /myapp_dir/myapp.js
但同样的问题仍然存在。
我的问题是:我怎样才能 运行 在启动时永远传递关于内存的参数?
我发现 this 用于相同目的的初始化脚本永远启动 Node 脚本。
我发现的最好方法就是在脚本中设置 PATH。
我在名为 launchforever.sh 的主文件夹中创建了一个 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