nodejs'永远'只是没有做任何事情

时间:2013-02-13 19:14:01

标签: node.js amazon-ec2 forever

我正在尝试永远使用Amazon EC2实例运行我的nodejs应用程序。我安装了nodejs npm,然后运行了sudo npm install forever -g 安装没有返回任何错误,所以我继续尝试使用forever start server.js运行我的应用程序,但它不会做任何事情 - 没有输出什么,甚至没有错误。
我还尝试了forever --helpforever,但没有一个给我任何回复......

使用nodejs - nodejs init.js定期运行我的应用程序时,它会按预期运行,但我需要使用forever运行它,以便在我与服务器断开连接时不会关闭。< / p>

编辑:
由于我唯一的问题是当我关闭终端会话到我的EC2服务器时nodejs正在关闭,我通过使用linux nohup命令解决了这个问题:
nohup sudo nodejs server.js &
即使我关闭了终端窗口,这也使得nodejs在子进程中运行。

感谢您的帮助! :)

5 个答案:

答案 0 :(得分:15)

我也没有从任何stdout命令收到任何forever输入,而此修复程序将其命名为:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

希望能有所帮助。

答案 1 :(得分:2)

我不知道这是否会有所帮助,但作为替代方案,您可以使用upstart。创建一个这样的脚本:

#this is the upstart service task. move it to /etc/init/nodeapp.conf

description "server for Node App"
author "Neels Grobler"

chdir /root/servers/nodeapp
exec node init.js 1>stdout.log 2>stderr.log
respawn

然后输入start nodeapp来运行它。要停止输入stop nodeapp。您还可以更改脚本,以便节点应用程序在系统引导等时启动。更多信息位于upstart.ubuntu.com

答案 2 :(得分:2)

您应该使用forever start server.js而不仅仅是forever server.js

答案 3 :(得分:1)

在Windows上,当你像以下一样永远奔跑:

forever start app.js

您可以在文件系统中找到生成的日志文件:

C:\Users\USERNAME\.forever\SomeLogFileHere.txt

为每个正在运行的脚本重新生成日志文件,并使用每个文件的唯一标识符。您始终可以通过以下方式检查哪个文件属于哪个进程:

forever list

答案 4 :(得分:0)

几个猜测。

  • 如果使用sudo npm install forever -g进行安装,则可能需要sudo才能永久运行。
  • 在您永久运行时设置server.js的完整路径,例如forever start /home/you/source/server.jssudo forever start /home/you/source/server.js