menu

生态系统文件

当在多个服务器上部署或使用多个CLI参数时,命令行的一种替代方式对于启动您的应用更加方便。

生态系统文件的目的是收集您所有应用的选项和环境变量。

生成一个模版

生成一个 ecosystem.config.js 模版:

pm2 init

这会生成:

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
}

有关可用属性的更多信息,请查看生态系统文件参考

使用您的生态系统文件

常规

一次性启动,停止,重启并重载您的所有应用程序:

pm2 start ecosystem.config.js
pm2 stop ecosystem.config.js
pm2 restart ecosystem.config.js
pm2 reload ecosystem.config.js

针对特定进程采取行动

使用该选项 --only <app_name> 对特定应用执行操作:

pm2 restart ecosystem.config.js --only app

环境变量

您可以多次进行申明,每个条目必须遵照此格式 env_<environment-name>

在这里,app流程可以从两个环境开始:developmentproduction

module.exports = {
  apps : [{
    name: "app",
    script: "./app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
}

--env 标志选择其中的一个:

pm2 start ecosystem.config.js
pm2 start ecosystem.config.js --env production

不可变环境

一旦添加到您的流程列表中,流程环境是不可变的。

将流程添加到流程列表时生成流程环境,使用:

  • 当前环境
  • 生态系统文件

因此,如果您重启具有不同于当前环境或具有新生态系统文件的进程列表,进程环境不会更改。

此行为是为了确保应用重启时的一致性。

更新环境

如果您想强制更新,您必须使用 --update-env

# refresh the environment
pm2 restart ecosystem.config.js --update-env

# switch the environment
pm2 restart ecosystem.config.js --env production --update-env

下一步

进程管理

疑问?

我们一直乐于帮您解决可能遇到的问题。搜索我们的文档或查看常见问题的答案。您也可以在我们的社区论坛发布问题或评论。