일반적인 질문이 있습니다. *.service특정 항목 *.service이 성공적으로 시작된 후 시스템 단위를 어떻게 시작합니까?
더 구체적인 질문은 시작된 website.service후에 만 어떻게 mongodb.service시작합니까? 즉,에 website.service의존해야합니다 mongodb.service.
일반적인 질문이 있습니다. *.service특정 항목 *.service이 성공적으로 시작된 후 시스템 단위를 어떻게 시작합니까?
더 구체적인 질문은 시작된 website.service후에 만 어떻게 mongodb.service시작합니까? 즉,에 website.service의존해야합니다 mongodb.service.
답변:
[Unit] 섹션 아래의 .service 파일에서 :
[Unit]
Description=My Website
After=syslog.target network.target mongodb.service
중요한 부분은 mongodb.service
맨 페이지에 설명되어 있지만 형식화로 인해 첫눈에 명확하지 않습니다.
After=종속성은에 After=포함 된 서비스와에 포함 된 서비스 After=가 모두 부팅의 일부로 시작되도록 예약 된 경우에만 유효 합니다.
전의:
a.service
[Unit]
After=b.service
이 방법은, 두 경우 a.service와는 b.service되어 활성화 , 다음 systemd 의지 주문 b.service후 a.service.
내가 오해하지 않는다면, 당신이 묻는 것은 시작될 b.service때 a.service시작 하는 방법 b.service입니다.
이에 대한 지시문은 Wants=또는 Requires=아래에 [Unit]있습니다.
website.service
[Unit]
Wants=mongodb.service
After=mongodb.service
차이 Wants=와 Requires=함께이다 Requires=시작하는 고장 b.service의 시작이 발생할 a.service가진 반면, 실패 Wants=, a.service하더라도 시작할 b.service실패. 자세한 내용은 의 man 페이지.unit 에 설명되어 있습니다.
After=website.service"website.service 후 내 유닛 실행!"을 의미합니다. 문서에서 설명하는 내용입니다. "After =는 나열된 장치가 시작된 후 구성된 장치가 시작되도록합니다" . "목록에있는 단위"는 "After ="의 오른쪽에있는 단위라고 가정합니다.
swap(a, b)