为什么Forever for Node.JS在rc.local中不起作用?

时间:2011-11-07 16:47:41

标签: linux node.js ubuntu

我正在将一个node.js应用程序部署到EC2上的Ubuntu服务器上,我正在使用Forever让它继续运行......永远。

问题是,如果我在控制台中输入以下内容:

forever start ~/path/myapp.js

它运作得很好。但我希望应用程序在启动时自动启动,因此我将该行添加到/etc/rc.local,它停止工作。 rc.local中的其他所有内容仍然有效。

我不熟悉Linux所以我最好的猜测是在运行rc.local时没有初始化一些重要的组件。还有其他地方我可以追加这条线吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

我很确定它与实际运行/etc/rc.local中命令的用户有关。由于~指定用户的主目录,因此可能不存在,与预期不同,或者在脚本运行时未加载。我建议尝试以下方法:

forever start /path/to/home/path/myapp.js

答案 1 :(得分:0)

这是一个非常晚的回复,但我刚刚碰到了这个。对我来说,使用forever list表示没有任何内容正在运行,但执行sudo forever list会显示服务器实际上正在运行。

这是因为rc.local以root身份运行,因此您的forever命令以root身份运行,只有root才能在列表中看到它。

我不知道最佳做法,但我通过从rc.local这样调用我的永久启动脚本来解决这个问题,其中“pi”是我想要启动永久过程的用户:

su pi -c './start'

如果有帮助,这是我的删节./start脚本,你的可能会有所不同,或者你可以将其内容直接放在rc.local中:

#!/bin/sh forever start --append -l forever.log -o server.log -e error.log server.js