파일에서 변수를 사용하도록 systemctl을 지정하십시오.


0

systemctl앱을 실행하고 유지 하는 데 사용하고 있습니다. 아래는 내 .service파일입니다. 를 확인하십시오 Environment='METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}'. 이것은 개인 키를 저장하는 곳 이며이 위치에 키를 보이지 않게하고 싶습니다.

내 질문은, systemctl에게 특정 위치의 파일에서 파일을 읽도록 요청하는 방법은 무엇입니까?

[Service]
ExecStart=/usr/bin/node /home/wow-doge/experimental/wow_doge_builds/bundle/main.js
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=logdoge
#User=root
#Group=root
Environment=NODE_ENV=production
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1
Environment=MONGO_URL=mongodb://127.0.0.1:27017/wow-doge
Environment=ROOT_URL=https://localhost
Environment='METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}'

[Install]
WantedBy=multi-user.target

답변:


1

https://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html#environmentfile-directive 에서 가져옴

EnvironmentFile Environment 지시문과 유사하지만 텍스트 파일에서 환경 변수를 읽습니다. 텍스트 파일에는 줄 바꾸기로 구분 된 변수 할당이 포함되어야합니다.

예:

[Service]
EnvironmentFile=/etc/envfile

내용 /etc/envfile:

NODE_ENV=production
PORT=3000
HTTP_FORWARDED_COUNT=1
MONGO_URL=mongodb://127.0.0.1:27017/wow-doge
ROOT_URL=https://localhost
METEOR_SETTINGS={"privateKey": "ohnoyouseemyprivatekey!"}

완벽합니다. 의도 한대로 작동했습니다!
blueren

man systemd.directives모든 지시문 도 나열합니다. 해당 목록에서 "environment"도 검색하십시오 EnvironmentFile=.
Mark Stosberg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.