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가 아래에 제시한 예 덕분에 제가 찾고 있던 것을 찾았습니다. 나는 그것을 그대로 시도했지만 왜 작동하지 않았는지 확신하지 못하고 결국 몇 가지 쉘 스크립트를 배우게 되었습니다.

먼저 나는 달렸다 $ 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" 대신 원하는 값을 입력할 수 있습니다. 예를 들어 파일을 다음과 같이 저장한 runappchmod u+x runapp다음을 사용하여 실행 가능하게 만듭니다.

sudo ./runapp &

관련 정보