
私は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
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!"}