Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么我的节点应用程序进程在我永远使用时不断停止?_Node.js_Amazon Web Services_Amazon Ec2_Forever - Fatal编程技术网

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 我已经在全球安装了永久工具。当我运行永久启动app.js时,我看到: warn: --minUptime not set. Defaulti

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

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

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

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app/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连接后,进程会停止吗

首先尝试使用
nohup
永远运行

nohup forever start app.js

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

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

当我使用
永久启动/bin/www
而不是传递app.js时,进程一直在运行


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

对于我来说,我必须使用“sudo forever”才能让它工作。

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

npm install
快跑

forever start app.js

这将解决问题

我正在同一ssh会话中运行
永久启动app.js
永久列表
,并且总是立即停止。我只是试着将其作为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呢?