.service
나는 내가 개발 중인 시스템을 구성하는 다양한 부분에 대해 약 6개의 파일을 작성했습니다. 전체 시스템을 단계별로 시작할 수 있다는 점이 유용하지만, 한 번의 호출로 전체 시스템을 시작할 수 있는 장치도 갖고 싶습니다 systemctl
.
가장 좋은 접근 방식은 무엇입니까?
답변1
당신은 하나를 원한다대상 유닛, 모든 서비스 단위는 종속성으로 나열됩니다 Wants=
. 그런 다음 systemctl start unitname.target
. (여기서 사용하지 마십시오 systemctl isolate
. 이렇게 하면 아마도 원하지 않는 서비스 종속성 트리의 항목을 제외한 모든 항목이 꺼집니다.)
답변2
사용해 보셨나요?PartOf
Wants
타겟팅 외에도 타겟 그룹의 하위 단위도 타겟팅합니까? 예: PartOf=foo.target
in foo-sub1.service
및 Wants=foo-sub1.service foo-sub2.service
in foo.target
. 방금 이것을 시도했는데 대상을 시작하고 중지하는 것만으로 모든 하위 유닛을 시작하고 중지할 수 있었습니다.
부분 =
종속성 구성은 Requires=와 유사하지만 장치를 중지하고 다시 시작하는 것으로 제한됩니다. systemd가 여기에 나열된 장치를 중지하거나 다시 시작하면 작업이 해당 장치에 전파됩니다. 이는 단방향 종속성입니다. 이 장치를 변경해도 나열된 장치에는 영향을 미치지 않습니다.
a.service에서 PartOf=b.service를 사용하는 경우 이 종속성은 b.service의 속성 목록에 ConsistsOf=a.service로 표시됩니다. ConsistsOf= 종속성을 직접 지정할 수 없습니다.