重新加载 PM2 配置文件

Reload PM2 configuration file

编辑后重新加载 PM2 配置文件时遇到问题:

{
    "apps": [
        ...
        {
            "name": "foo",
            "script": "foo/index.js",
            "cwd": "foo",
            "watch": false
        }
    ]
}

我以前做过

pm2 restart config.json

pm2 reload config.json

pm2 gracefulReload config.json

但他们没有重新加载现有应用程序的配置(应用程序配置中的更改不适用)。对我有用的唯一方法是:

pm2 delete foo
pm2 restart config.json

这应该如何完成?

the reference所述,不再重新加载配置:

Starting PM2 v2.1.X, environnements are immutable by default, that means they will never be updated unless you tell PM2 to do so, to update configurations, you will need to use --update-env options.

所以这应该是

pm2 startOrReload config.js --update-env

如果您使用 pm2 进行 本地开发 并且在重新加载配置时遇到问题,您应该 运行:

$ pm2 delete ecosystem.config.js

这会删除现有服务(不用担心,不会删除任何文件)。然后重新加载配置 运行:

$ pm2 start ecosystem.config.js

提示: 您可能需要将 ecosystem.config.js 替换为您的配置文件名)

这是一种非常粗糙的重新加载方式,但如果您想要一个干净的状态,这很好。它可以有效地解决一些问题,就像我遇到的 node-config - 我收到 NODE_APP_INSTANCE 警告,即使我将 instance_var 添加到我的生态系统配置中。