【问题标题】:PM2 doesn't launch my nodejs app after server restart服务器重启后 PM2 没有启动我的 nodejs 应用程序
【发布时间】:2016-02-11 19:55:08
【问题描述】:
我在 Google Compute Engine 中设置了一个 vm 实例。我安装了 pm2,运行了这些命令:
sudo env PATH=$PATH:/usr/local/bin pm2 startup -u zgintasz
pm2 start index.js
当我输入 pm2 list 时,我会看到我的应用进程正在运行。
我想确保我的 nodejs 应用程序在服务器重新启动时重新启动,所以我在 Google Developer Console 上单击了Reset,再次输入了pm2 list,但我看不到它不再运行。有什么问题?
【问题讨论】:
标签:
node.js
google-app-engine
google-compute-engine
reset
pm2
【解决方案1】:
我一直在同一条船上。经过一番搜索,我发现您需要在启动应用程序后“保存”。 'pm2 save' - 转储进程。
这为我个人解决了这个问题,在我的 Ubuntu 机器上,但在我的 debian vps 上,它似乎仍然没有按应有的方式持续存在。
【解决方案2】:
您可以通过键入命令在服务器启动(/etc/init.d/)文件夹中配置 pm2:
sudo env PATH=$PATH:path_to_bin pm2 startup os_name -u user_name
这样做是在告诉服务器在服务器启动时启动 pm2 进程。但为了做到这一点,您需要存储 pm2 进程的状态,您可以通过以下方式完成:
pm2 save
在 upstart 中配置好你的 pm2 之后。
因此,每当您的机器出现故障并重新启动它时,pm2 都会从您保存它的那一点开始运行您的节点进程的状态。