구성해야 하는 시스템 장치가 2개 있습니다. 둘 다 구성 파일을 특정 위치에 설정해야 하므로(각각 고유한 구성 위치가 있음) 모두 ConditionPathExists
자체 구성 파일이 구성되어 있습니다.
동일한 포트에서 수신 대기하기 때문에 서로 충돌합니다. 그래서 그들은 또한 구성했습니다Conflicts=
그러나 두 구성 파일이 모두 존재하는 경우(정상적인 상황에서는 발생하지 않지만 발생할 수 있는 경우) 서비스 B 대신 서비스 A가 시작되기를 원합니다. 이를 위해 무엇을 구성해야 합니까?
답변1
두 유닛이 모두 대기열에 추가되고 다른 모든 것이 동일한 경우(즉, 두 유닛 모두 동일한 Wants= 종속성을 통해 끌어옵니다)장치에는Conflicts=
시작 단위가 되며 "다른 콘텐츠와 충돌" 단위는 건너뜁니다.
답변2
Systemd의 우선 순위 구성은 모르지만 Systemd 기능을 사용하여 목표를 달성할 수 있습니다.
# a.service
ConditionPathExists=/path/to/configfile.a
# b.service
ConditionPathExists=!/path/to/configfile.a
ConditionPathExists=/path/to/configfile.b