두 개의 충돌하는 시스템 장치를 설정하고 다른 장치보다 우선하도록 만드는 방법은 무엇입니까?

두 개의 충돌하는 시스템 장치를 설정하고 다른 장치보다 우선하도록 만드는 방법은 무엇입니까?

구성해야 하는 시스템 장치가 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

관련 정보