systemd 서비스 A에는 "충돌=B"가 있습니다. A와 B가 모두 활성화되었습니다. 부팅 시 시작이 허용되는 서비스(있는 경우)를 알 수 있습니까? 아니면 임의로 시작됩니까?

systemd 서비스 A에는 "충돌=B"가 있습니다. A와 B가 모두 활성화되었습니다. 부팅 시 시작이 허용되는 서비스(있는 경우)를 알 수 있습니까? 아니면 임의로 시작됩니까?

Debian 9에 패키지를 설치하면 firewalld패키지도 함께 가져옵니다 ebtables. 이는 시스템에 두 가지 서비스를 추가하고 firewalld평소 ebtables와 같이 데비안은 두 서비스를 모두 활성화합니다.

firewalld.service으로 표시됩니다 Conflicts=ebtables.service.

시스템이 시작되면 이 두 서비스는 어떻게 되나요? 둘 중 어느 것이 효과가 있는지 알 수 있나요? 아니면 둘 다 실행이 허용되지 않습니까?

답변1

장치 B와 충돌하는 장치 A가 장치 B와 동시에 시작되도록 예약된 경우 트랜잭션은 실패하거나(둘 다 트랜잭션의 일부인 경우) 수정되도록 수정됩니다(필요한 사항 중 하나 또는 둘 다인 경우). 작업은 거래의 필수 부분이 아닙니다). 후자의 경우 불필요한 작업이 제거되거나 둘 다 필요하지 않은 경우 충돌하는 장치가 시작되고 충돌하는 장치가 중지됩니다.

--남자 시스템 유닛

이 경우, 및 는 둘 다 firewalld.serviceebtables.service아니라 WantedBy=multi-user.target입니다 RequiredBy=.

결론적으로: firewalld.service시작되거나 ebtables.service시작되지 않습니다.


설치 직후에 무슨 일이 일어나는지는 알려주지 않습니다 firewalld. 다행히 ebtables먼저 설치했기 때문에 결과는 같습니다 . 이 시퀀스는 일시적으로 시작되었다가 ebtables.service시작된 후 중지됨을 의미합니다.firewalld.service

한 유닛이 다른 유닛에 충돌=을 설정한 경우 전자를 시작하면 후자는 중지되고 그 반대의 경우도 마찬가지입니다.

관련 정보