是否可以根据文件内容以systemd为单位设置env变量。像ENV =`cat somefile`这样的东西?
我需要根据somefile的内容设置可执行文件的路径。我没有找到关于systemd中的变量的任何信息,exept env变量所以我尝试使用它们,但没有运气
我试过使用Environment ='ENV =`cat somefile`'但没有运气。它只是将变量的值设置为`cat somefile`。我尝试使用cat
和/bin/cat
,但结果是一样的。
答案 0 :(得分:-1)
完全出于此目的有一个特殊指令:EnvironmentFile
。您应该将其放入[Service]
部分,如下所示:
[Service]
EnvironmentFile=/etc/default/somefile
如果文件不在那里,服务将无法启动,所以为了能够在文件存在的情况下启动它,您可以在文件名前添加前导 - 符号,像:
[Service]
EnvironmentFile=-/etc/default/somefile
请注意,尽管此文件看起来像shell script
但它并非变量声明的行为略有不同,特别是,您无法在变量声明中引用其他变量。
请阅读EnvironmentFile和Environment选项说明,了解更多详情。 Command lines也可能有帮助。