NodeJS 重启后PM2进程消失

gcuhipw9  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(380)

我正在使用PM2将我的节点应用程序作为服务运行。我的Node应用程序是RAM饥饿,所以它消耗大约300到800MB的RAM,具体取决于流量。我的DigitalOcean droplet有1GB RAM。
有时,我的应用程序会突然从运行的服务中消失,当我给予命令pm2 list时,我什么也看不到
据我所知,pm2应该照顾这样的崩溃本身,并重新启动应用程序时,这样的崩溃发生,但它不重新启动它,而是做任何事情。
我现在正在寻找一些解决方案,可以自动重新启动我的应用程序时,崩溃,我必须使用pm2使用它的服务。

qyyhg6bp

qyyhg6bp1#

你能检查一下机器是否重启了吗?
您可以使用此命令查看上次重新启动时间:

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有一个非常好的软件包,但我很确定你可以在任何系统上找到等效的软件包。

vaqhlq81

vaqhlq812#

您只需要运行三个命令。第一:
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进程将自动启动。

相关问题