我有两个系统单元要配置。它们都需要在特定位置设置配置文件(每个配置文件都有各自的配置位置),因此它们都为各自的配置文件配置了ConditionPathExists。
他们因在同一个港口收听而相互冲突。因此,它们也配置了Conflicts=
但是,在两个配置文件都存在的情况下(这在正常情况下不应该发生,而是可能发生),我希望服务A启动而不是服务B。为此我应该配置什么?
发布于 2023-05-21 14:00:32
我不知道Systemd中的任何优先配置,但是您可以使用Systemd特性实现目标。
# a.service
ConditionPathExists=/path/to/configfile.a# b.service
ConditionPathExists=!/path/to/configfile.a
ConditionPathExists=/path/to/configfile.b发布于 2023-05-22 10:27:42
如果两个单元都排队,其他所有单元都是相等的(即两个单元通过相同的Wants=依赖关系被拉进来),那么具有Conflicts=的单元将被启动,而“冲突被其他东西”单元将被跳过。
https://unix.stackexchange.com/questions/746534
复制相似问题