简体   繁体   English

服务器重启后 PM2 不启动我的 nodejs 应用程序

[英]PM2 doesn't launch my nodejs app after server restart

I have a vm instance set up in Google Compute Engine.我在 Google Compute Engine 中设置了一个 vm 实例。 I installed pm2, ran these commands: sudo env PATH=$PATH:/usr/local/bin pm2 startup -u zgintasz我安装了 pm2,运行了这些命令: sudo env PATH=$PATH:/usr/local/bin pm2 startup -u zgintasz

pm2 start index.js

When I type pm2 list , I then see my app process running.当我输入pm2 list ,我会看到我的应用程序正在运行。

I wanted to make sure my nodejs app relaunches when server is restarted, so I clicked Reset on Google Developer Console, typed in pm2 list again and I don't see it running anymore.我想确保我的 nodejs 应用程序在服务器重新启动时重新启动,所以我在 Google Developer Console 上单击了Reset ,再次输入pm2 list ,但我看不到它再运行了。 What can be wrong?有什么问题?

I have been in the same boat. 我去过同一条船。 After some searching I found that you need to 'save' after starting apps. 经过一番搜索,我发现您需要在启动应用程序后“保存”。 'pm2 save' - which dumps the processes. 'pm2 save'-转储进程。

This solved this issue for me personally, on my Ubuntu machine, but on my debian vps, it seems to still not persist as it should. 这样就可以在我的Ubuntu机器上亲自为我解决此问题,但是在我的debian vps上,它似乎仍然无法如期存在。

You can configure pm2 in server startup ( /etc/init.d/ ) folder by typing command: 您可以通过键入以下命令在服务器启动( /etc/init.d/ )文件夹中配置pm2:

sudo env PATH=$PATH:path_to_bin pm2 startup os_name -u user_name

By doing so you are telling server to start your pm2 process on server start. 这样做是在告诉服务器在服务器启动时启动pm2进程。 But in order to do so, you need to store state of your pm2 process, which you can do by: 但是,为此,您需要存储pm2进程的状态,您可以通过以下方式进行操作:

pm2 save

after configuring your pm2 in upstart. 在upstart中配置pm2之后。

So whenever your machine goes down and you restart it, pm2 will run the state of your node process from the point you saved it. 因此,只要您的计算机出现故障并重新启动它,pm2就会从保存它的那一刻开始运行节点进程的状态。

use "pm2 startup"使用“pm2启动”

  • do not add sudo不要添加 sudo

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM