重启后PM2进程消失

问题描述 投票:0回答:2

我正在使用 PM2 将我的节点应用程序作为服务运行。我的 Node 应用程序内存占用很大,因此它会消耗大约 300 到 800mb 的内存,具体取决于流量。我的 DigitalOcean Droplet 有 1GB RAM。

有时,我的应用程序会突然从正在运行的服务中消失,当我发出命令时我什么也看不到

pm2 list

据我所知,pm2 应该自行处理此类崩溃,并在发生此类崩溃时重新启动应用程序,但它不会重新启动它,而是执行任何操作。

我现在正在寻找一些解决方案,可以在应用程序崩溃时自动重新启动我的应用程序,并且我必须使用 pm2 才能将其用作服务。

node.js digital-ocean vps pm2
2个回答
57
投票

机器重启与否可以查看日志吗?

您可以使用此命令查看上次重新启动时间:

last | grep reboot

甚至

uptime

命令查看您跑步了多长时间。

如果是这样,那就应该是问题所在。 pm2 为此提供了良好的解决方案管理:

$ pm2 startup         # Detect init system, generate and configure pm2 boot on startup
$ pm2 save            # Save current process list
$ pm2 resurrect       # Restore previously saved processes
$ pm2 unstartup       # Disable and remove startup system

如果您的应用程序运行在应由防火墙打开的端口上,则您也需要对防火墙进行相同类型的保存。对于 Ubuntu,我知道有一个非常好的软件包,但我很确定您可以在任何系统上找到等效的软件包。


1
投票

您只需要运行三个命令。第一:

pm2 startup

然后复制粘贴并执行它显示的命令,如下所示:

sudo env PATH=$PATH:/home/user/.nvm/versions/node/v18.12.1/bin /home/user/.nvm/versions/node/v18.12.1/lib/node_modules/pm2/bin/pm2 startup systemd -u user --hp /home/user

最后:

pm2 save

这样做,下次系统重新启动时,所有pm2进程将自动启动。

© www.soinside.com 2019 - 2024. All rights reserved.