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