gpt4 book ai didi

node.js - 即使在使用 sudo nohup 后 2 天后,Amazon EC2 NodeJS 服务器也会自行停止

转载 作者:搜寻专家 更新时间:2023-11-01 00:22:49 25 4
gpt4 key购买 nike

我的应用在 http://talkwithstranger.com/ 上运行我已经将它部署在 AWS EC2 上。我用这个命令

sudo nohup node index.js &

即使我关闭终端并退出 SSH,也要继续运行我的 Node JS 服务器。

然而,2 天后每次醒来,我发现 Node 服务器本身自动停止。我通过使用检查了正在运行的进程

ps -ef

我的 Node 脚本不存在。

谷歌浏览器说找不到站点 DNS,因为 NodeJS Express 当然没有运行来提供我的 html 文件,但为什么它会自行停止?

是什么导致我的服务器每 2 天意外关闭一次?我必须再次手动运行 nohup 才能再次运行它。

nohup 有过期时间吗?

最佳答案

您应该使用服务/进程管理器运行 node.js。您可以使用一些基本的东西,例如 foreversupervisord 但实际上我建议您看一下 PM2 .

它可以做很多事情 - 其中之一是它管理您的进程,确保它继续运行,在失败时重新启动它,管理日志等。您还可以让它在您重新启动服务器时自动启动.

它与https://pm2.io 结合起来变得非常强大,因为这使您能够远程监控服务器的指标,例如 CPU 和内存,并查看是否发生了异常,等等(例如甚至通过从 git 中拉取来远程更新软件)。然而,不幸的是,他们不再提供免费计划——他们的计划现在起价为每月 79 美元,这很遗憾。不过不用担心,PM2 应用程序本身仍然是免费和开源的,只是监控需要花钱。

PM2的基本用法:

npm install -g pm2

...安装 PM2。

pm2 start my_script.js

启动脚本并让它在后台运行。

pm2 status

显示任何正在运行的脚本的状态。

pm2 restart all

重新启动所有正在运行的脚本。

pm2 kill

停止所有脚本并完全关闭 PM2 守护程序。

pm2 monit

监控 CPU/RAM 使用情况并显示。

pm2 logs

显示最后 20 个输出和错误日志行,并开始将实时日志流式传输到控制台。日志存储在文件夹 ~/.pm2/logs 中。

使用 PM2,您的脚本不会停止 - 最多会重新启动。如果是这样,您将能够更轻松地理解原因,因为您可以轻松访问日志并观察内存使用情况等。

额外提示:

为了避免日志文件填满硬盘,我建议安装模块pm2-logrotate:

pm2 install pm2-logrotate

要在服务器启动时使用相同的启动脚本自动启动 PM2,您可以先保存当前配置:

pm2 save

...然后使用以下命令安装启动脚本 - 按照显示的说明进行操作,具体取决于您使用的操作系统:

pm2 startup

要通过多进程、自定义环境变量等以更高级的方式使用 PM2,请查看 ecosystem files .

关于node.js - 即使在使用 sudo nohup 后 2 天后,Amazon EC2 NodeJS 服务器也会自行停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36907766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com