Node.js 为什么我的节点应用程序进程在我永远使用时不断停止?

Node.js 为什么我的节点应用程序进程在我永远使用时不断停止?,node.js,amazon-web-services,amazon-ec2,forever,Node.js,Amazon Web Services,Amazon Ec2,Forever,在一个免费的Amazon EC2实例上,我在express上设置了一个简单的node.js Hello World应用程序 如果我运行npm start,我的应用程序运行良好,我可以从浏览器中点击它,我会看到以下输出: > myappname@0.0.0 start /home/ec2-user/app > node ./bin/www 我已经在全球安装了永久工具。当我运行forever start app.js时,我看到: 但是,当我选中“永久”列表时,我看到进程已停止: inf

在一个免费的Amazon EC2实例上,我在express上设置了一个简单的node.js Hello World应用程序

如果我运行npm start,我的应用程序运行良好,我可以从浏览器中点击它,我会看到以下输出:

> myappname@0.0.0 start /home/ec2-user/app
> node ./bin/www
我已经在全球安装了永久工具。当我运行forever start app.js时,我看到:

但是,当我选中“永久”列表时,我看到进程已停止:

info:    Forever processes running
data:        uid  command             script forever pid  id logfile                          uptime  
data:    [0] 2v0J /usr/local/bin/node app.js 2455    2457    /home/ec2-user/.forever/2v0J.log STOPPED 
这是日志中的唯一消息:错误:永久检测到的脚本被信号:null终止

我找不到任何其他日志信息。为什么它会立即停止


编辑:我试着以nohup forever start app.js运行它,但遇到了同样的问题。我在同一个ssh会话中一个接一个地运行永久启动和永久列表。应用程序的进程似乎立即停止。

我猜在您断开ssh连接后,进程会停止吗

试着先和诺胡普一起永远跑步


当您断开与ssh的连接时,服务器将终止shell的所有子进程。nohup将进程与其父shell断开连接。

我能够解决我的问题,这要感谢对一个类似问题的回答:

当我使用forever start./bin/www而不是通过app.js时,进程一直在运行


这是否会引起任何麻烦还有待观察。

对于我来说,我必须永远使用sudo才能让它工作。

如果您在更新代码后启动服务器。提取最新代码并运行

npm install
快跑

forever start app.js

这将解决问题

我正在同一ssh会话中运行forever start app.js和forever list,并且它总是立即停止。我只是试着将它作为nohup forever start app.js运行,得到了相同的结果:我一检查就停止了forever进程。检查日志文件。您的节点进程是否因脚本错误而死亡?如果我检查“永久”列表中显示的日志文件,我所看到的就是上面问题中列出的错误。还有其他日志文件我可以检查吗?我相信&它在nohup命令中丢失了。。ie:nohup forever start app.js&您必须调用forever start。在您的情况下,当您执行npm启动时,文件位于./bin/www,而不是app.js。考虑到为什么他们甚至应该允许永远使用。/bin/www如果只有永远开始才可以实现使用永远的目标。/bin/www在没有开始的情况下使用,您可以在SSH控制台上看到日志。但是,如果我可以只使用节点myscript.js而不使用永远,为什么我要永远使用myscript.js呢?
npm install
forever start app.js