You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PM2启动多实例后无法获取NODE_APP_INSTANCE变量求助

解决pm2集群模式下无法获取NODE_APP_INSTANCE的问题

以下是几个可行的排查和解决步骤:

  • 确认pm2集群模式是否正常启用
    执行pm2 list查看进程状态,确保MODE列显示为cluster,INSTANCES列显示为3。如果模式是fork,说明集群模式未生效,检查启动命令是否正确(-i 3是集群模式的触发参数)。

  • 使用pm2配置文件启动,确保默认环境变量注入
    创建ecosystem.config.js配置文件:

    module.exports = {
      apps: [
        {
          name: 'your-app',
          script: 'script.js',
          instances: 3,
          autorestart: false,
          args: 'myarg',
          merge_env: true // 强制启用默认环境变量与自定义变量合并
        }
      ]
    };
    

    然后执行pm2 start ecosystem.config.js启动,再测试变量是否能正常获取。

  • 简化代码排除异步干扰
    将你的代码改为同步执行,避免不必要的异步逻辑:

    console.log("Instance ID = " + process.env.NODE_APP_INSTANCE);
    console.log("PM2 Instance ID = " + process.env.INSTANCE_ID);
    process.exit();
    
  • 检查是否存在环境变量覆盖配置
    如果之前设置过merge_env: false的pm2配置,会阻止默认环境变量(包括NODE_APP_INSTANCE)的注入,需要将其改为merge_env: true。

  • 更新pm2到最新稳定版
    你的pm2版本为5.4.2,部分旧版本可能存在集群模式变量注入的bug,执行npm install -g pm2@latest更新后,重新启动实例测试。

内容的提问来源于stack exchange,提问作者Jean François Manatane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 04:19:55