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

PM2无法读取当前Bash会话环境变量,如何解决?

解决PM2无法读取当前Bash会话环境变量的问题

PM2启动的进程默认不会自动继承当前Bash会话中未导出的环境变量,这就是直接用node能读到变量、PM2却不行的核心原因。以下是几种可行的解决方法:

方法1:启动时直接传递环境变量

在PM2启动命令里明确指定要传递的变量,让进程直接获取当前会话的变量值:

pm2 start dist/index.js --env URL=$URL

方法2:使用PM2配置文件

创建ecosystem.config.js配置文件,在其中引用当前会话的环境变量:

module.exports = {
  apps: [{
    name: 'your-express-app',
    script: 'dist/index.js',
    env: {
      URL: process.env.URL
    }
  }]
};

然后通过配置文件启动应用:

pm2 start ecosystem.config.js

方法3:导出环境变量后再启动PM2

如果你的环境变量只是当前会话临时定义的,先将其导出为全局可用的变量,再启动PM2:

export URL=http://ec2-51-20-6-22.eu-north-1.compute.amazonaws.com
pm2 start dist/index.js

要是需要永久生效,把export URL=xxx添加到~/.bashrc或~/.bash_profile文件中,执行source ~/.bashrc(对应你修改的文件)刷新会话后,再启动PM2就能自动读取该变量。

内容的提问来源于stack exchange,提问作者Hossam Hamza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:05:58