如何在.service脚本中使用环境变量
收藏

我在Linux服务器上有一个长生不老的项目。我已经创建了一个.service脚本,它将使用以下命令启动和停止应用程序

systemctl start "my_app".service
systemctl stop "my_app".service

.service文件看起来像这样…
[Unit]
Description="example app_name daemon"

[Service]
Type=simple
User=root
Restart=on-failure
Environment=MIX_ENV=prod "PORT=4000"

WorkingDirectory="the file path to my app"

ExecStart=/usr/local/bin/mix phoenix.server

[Install]
WantedBy=multi-user.target

它按预期工作,唯一的例外是它不会读取环境变量。我可以通过手动将它们添加到脚本中来授予应用程序对它们的访问权限,就像我在上面的PORT=4000中所做的那样。
我想知道是否有办法让.service文件访问我服务器上的env vars,这样我就不必每次在新服务器上使用此脚本时都将它们写入其中。提前谢谢
如果您想了解更多项目信息,请随时查看the repo!_


最佳答案:

您正在EnvironmentFile=部分中查找[Service]指令。

EnvironmentFile=/path/to/some/textFile

阅读here了解更多信息。

    公众号
    关注公众号订阅更多技术干货!