我是 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 &