我正在尝试永远使用Amazon EC2实例运行我的nodejs应用程序。我安装了nodejs npm,然后运行了sudo npm install forever -g
安装没有返回任何错误,所以我继续尝试使用forever start server.js
运行我的应用程序,但它不会做任何事情 - 没有输出什么,甚至没有错误。
我还尝试了forever --help
和forever
,但没有一个给我任何回复......
使用nodejs - nodejs init.js
定期运行我的应用程序时,它会按预期运行,但我需要使用forever
运行它,以便在我与服务器断开连接时不会关闭。< / p>
编辑:
由于我唯一的问题是当我关闭终端会话到我的EC2服务器时nodejs正在关闭,我通过使用linux nohup
命令解决了这个问题:
nohup sudo nodejs server.js &
即使我关闭了终端窗口,这也使得nodejs在子进程中运行。
感谢您的帮助! :)
答案 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
才能永久运行。forever start /home/you/source/server.js
或sudo forever start /home/you/source/server.js