当我使用node server.js
在我的Ubuntu Linux服务器上运行我的nodejs应用程序时,它可以正常工作,并使用 process.env.db 输出环境变量$db
的值
但是,在运行sudo pm2 start server.js
时,应用会中断,将环境变量视为未定义。
我尝试在以下文件中添加变量:
db="hello"
db="hello"
export db="hello"
我也重新启动并运行source ~/.bashrc
以确保变量可用。
我想我已经尝试了这里提到的所有内容,我不知道还能做什么:
答案 0 :(得分:7)
请注意,您正在加载当前用户的变量source ~/.bashrc
。但是,如果您说sudo ...
与用户root
一起运行,那么这不会改变。
您可以做的是sudo
与-E
:
sudo -E pm2 start server.js
来自man sudo
:
-E, --preserve-env
Indicates to the security policy that the user wishes to reserve their
existing environment variables. The security policy may eturn an error
if the user does not have permission to preserve the environment.
答案 1 :(得分:1)
请参阅此主题https://github.com/Unitech/pm2/issues/204
好像你的环境变量被缓存了。