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

标签 linux node.js ubuntu pm2

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

但是,应用程序在运行 sudo pm2 start server.js 时中断,看到环境变量为未定义

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

  • 等/环境: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.

关于linux - 如何设置 Linux 环境变量,以便 pm2 可以看到它们用于 node.js 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34897875/

相关文章:

c - 无线程的 C 语言非阻塞库 API

node.js - Angular 4 的平均堆栈不起作用

javascript - 如何动态设置 karma 测试中使用的文件

javascript - 如何在同一函数中使用 res.render 和 res.redirect

python从linux命令输出返回列表

windows - 从 Java 源代码更改操作系统参数

ubuntu - 在 Ubuntu 12 上安装 bookshop princexml 时缺少 libjpeg 库

ubuntu - 无法将图像推送到 Dockerhub

java - 在 Linux 上运行 WEKA

php - 检测文件从服务器中删除的原因