13

我正在尝试在 Amazon EC2 实例上永远使用我的 nodejs 应用程序。我安装了 nodejs npm,然后运行sudo npm install forever -g​​.
安装没有返回任何错误,所以我继续尝试使用 运行我的应用程序forever start server.js,但它不会做任何事情 - 没有任何输出,甚至没有错误。
我也试过forever --help了,只是forever,但他们都没有给我任何回应......

使用 nodejs 定期运行我的应用程序时 -nodejs init.js它按预期工作,但我需要让它运行,forever这样当我与服务器断开连接时它不会关闭。

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

不过感谢您的帮助!:)

4

5 回答 5

16

我也没有收到任何命令的任何stdout输入forever,这个修复解决了它:

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

希望对某人有所帮助。

于 2014-09-09T19:29:46.573 回答
2

你不应该只forever start server.js使用forever server.js

于 2013-02-13T19:24:49.603 回答
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

于 2013-02-13T19:24:30.087 回答
1

几个猜测。

  • 如果您使用 安装sudo npm install forever -g,您可能需要sudo永远运行。
  • 当你永远运行时,放置一个完整的 server.js 路径,例如forever start /home/you/source/server.jssudo forever start /home/you/source/server.js
于 2013-02-13T22:10:25.840 回答
1

在 Windows 上,当你永远运行时:

forever start app.js

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

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

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

forever list
于 2016-02-25T08:57:58.500 回答