将环境变量传递给 Sudo AWS ec2 sudo 节点

将环境变量传递给 Sudo AWS ec2 sudo 节点

我是 Linux 和 AWS 的新手。我有一个在 EC2 实例上运行的 Node.js 服务器。我正在运行以下命令以使其在端口 80 上无限运行:

 $ sudo node app.js &

现在,当我使用节点应用程序运行它时,sudo将找不到任何环境变量。

我需要能够设置环境变量 USER、PASSWORD 和 IP 来连接到我的数据库。我尝试了无数命令,但只成功设置了 1 个环境变量,但当我设置新变量时,它被删除了。

解决方案

感谢杰夫·夏勒(Jeff Schaller)下面给出的例子,我找到了我正在寻找的东西。我完全按照原样尝试了它,但我不确定为什么它不起作用,我最终学习了一些 shellscripts。

首先我跑了$ vim runapp.sh。然后我添加了以下代码:

#!/bin/sh
Clear
export USER="Username"
export PASSWORD="Password"
export IP="1.1.1.1"
Node ./bin/www

保存文件后,我运行了$ chmod +x runapp.sh

最后我跑了$ sudo ./runapp.sh &,它跑得很完美。

如果我不应该这样做,或者如果有错误或更好、更安全的方法,请告诉我,以便我最终可以修复它。

答案1

创建一个如下所示的文件:

#!/bin/sh
USER=u PASSWORD=p IP=10.10.10.10 node app.js

... 或者 ...

#!/bin/sh
USER=u; export USER
PASSWORD=p; export PASSWORD
IP=10.10.10.10; export IP
node app.js

...您可以在其中输入自己的值,而不是“u”、“p”和“10.10.10.10”。将文件另存为,例如,,runapp然后使用 使其可执行chmod u+x runapp,然后运行它:

sudo ./runapp &

相关内容