我对系统d概念有点经验,即单元文件等。 现在我有一个要求,因为我的单位文件A应该依赖于B,如果满足一些条件(比如一些变量值),否则依赖于C单元文件或服务。
systemd中是否提供此功能?
答案 0 :(得分:0)
您可以将依赖服务写入文件并分配给env var,例如/etc/foo/bar.env
BAR_DEPENDENCIES=apple banana cereal
然后在你的bar.service文件中
EnvironmentFile=/etc/foo/bar.env
ExecStartPre=/usr/bin/systemctl start $BAR_DEPENDENCIES
ExecStart=/opt/foo/bar.exe
这将启动apple
,banana
和cereal
服务。您可以在启动/etc/foo/bar.env
服务之前以编程方式修改bar
文件以添加或删除服务。
我还使用了帮助服务来编写环境文件,并在主服务中将帮助服务指定为Requires=
,以便它在主服务之前运行。