= 서비스 A 또는 서비스 B가 필요한 단위 파일을 작성 중이지만 어느 것이든 상관하지 않습니다. 이것을 어떻게 지정하나요?
답변1
가장 간단한 방법은 A 또는 B에 대한 테스트를 추가하는 것입니다.ExecStartPre
[Unit]
Description=this unit needs A or B
[Service]
ExecStartPre=/bin/bash -c '/usr/bin/systemctl is-active --quiet A || /usr/bin/systemctl is-active --quiet B'
ExecStart=/the/actual/command
또 다른 접근 방식은 A 또는 B를 별도의 서비스 단위로 테스트하는 것입니다.
[Unit]
Description=this service is active if A or B are present
[Service]
[Unit]
Description=test for A or B
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c '/usr/bin/systemctl is-active --quiet A || /usr/bin/systemctl is-active --quiet B'
A_B_checker.service
그런 다음 기본 서비스에 종속성을 추가합니다 .