繁体   English   中英

如何设置 Linux 环境变量,以便 pm2 可以在 node.js 应用程序中看到它们?

[英]How do I set Linux environment variables so that pm2 can see them for node.js apps?

当我使用node server.js在 Ubuntu Linux 服务器上运行我的 nodejs 应用程序时,它可以正常工作,并使用process.env.db输出环境变量$db的值。

但是,应用程序在运行sudo pm2 start server.js时中断,将环境变量视为undefined

我尝试在以下文件中添加变量:

  • 等/环境: db="hello"
  • ~/.ssh/environment: db="hello"
  • ~/.bashrc: export db="hello"

我还重新启动并运行source ~/.bashrc以确保变量可用。

我想我已经尝试了这里提到的一切,我不知道还能做什么:

请注意,在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.

请参阅此主题https://github.com/Unitech/pm2/issues/204

好像你的环境变量被缓存了。

我删除了 pm2 进程并像往常一样重新启动它。 只是简单地重新启动该过程并不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM