restar/reload 申请不同版本的正确方法

Correct way to restar/reload application for a different release

我有以下文件夹结构:

current
releases
  2192091029019/
  1029012901920/

最新版本被推送到当前文件夹,然后我使用 pm2 start 启动它,但是如果我上传具有不同文件夹名称的新版本并从新文件夹执行 pm2 reload 它仍然会尝试引用启动应用程序的原始版本。有没有办法根据新代码重新启动应用程序?

我对这个发布结构有同样的问题,但是 supervisord+Rails 而不是 pm2 + node。 在我的例子中,我需要完全重启 supervisord 每次部署来解决这个问题。 所以在你的情况下它可能是这样工作的:

pm2 stop
kill -SIGTERM {pm2_pid}
pm2 startup

这是一个老掉牙但可行的解决方案。