는
답변
start on
및 start on started
:이 스탠자는 작업이 자동으로 시작하게됩니다 이벤트의 집합을 정의
에
6.33 시작.
...
6.33.2 시작이 다른 서비스
start on started other-service
에 따라 달라집니다 그래서 귀하의 경우, start on started postgresql
은 그것에 의존하기 때문에 PostgreSQL을 후가 성공적으로 시작했다 시작해야 의미합니다. systemd에서
는 것이라고 :
[Unit]
Requires=postgresql
After=postgresql
때문에 systemd.unit man page에있어서
After=,Before=
... 단위 foo.service가 = 바 전에 설정이있는 경우. 서비스 및 두 장치 모두 시작될 때 bar.service의 시작은 foo.service가 시작될 때까지 지연됩니다. [...] 이후 =는 Before =의 반대입니다. 즉, After =는 나열된 장치가 시작된 후에 구성된 장치가 시작되도록 보장합니다. Before =는 반대로, 구성된 장치가 전에 완전히 시작된 것입니다. 나열된 단위가 시작됩니다.
...
Requires=
다른 장치에 대한 요구 사항 종속성을 구성합니다. 이 유닛이 활성화되면 여기에 나열된 유닛도 활성화됩니다. 다른 장치 중 하나가 활성화되지 않고 실패한 장치에 대한 주문 종속성이 설정되면이 장치는 시작되지 않습니다. [...] 단위 foo.service가 Requires =로 구성된 bar.service 단위를 필요로하고 순서가 After = 또는 Before =로 구성되지 않은 경우 두 단위가 동시에 시작되고 둘 사이에 지연없이 시작됩니다. foo.service가 활성화되었습니다.
stop on
에 관해서는 및 stop on stopped
upstart에 따르면
6.34 정지
이 스탠자에 정의합니다 자동 인 경우 정지 작업이 원인이 될 것입니다 이벤트의 세트 이미 실행 중입니다.
...
6.34.systemd.unit man page에 따라 위에서 언급After=postgresql
가 다시 때문에 덮여있다
stop on stopped other-service
의존 서비스 후 3 번 :
After=,Before=
...] 참고 때 두 그런 그들 사이의 순서 의존성을 갖는 유닛이 셧다운되고, 시동 순서의 반대가 적용된다. 즉 유닛이 다른 유닛에서 After = (후)로 구성된 경우, 두 유닛이 모두 종료되면 후자보다 먼저 유닛이 중지됩니다.
'필수'는 systemd의 단위 섹션이 아닙니다. 유닛 A가 유닛 B에 엄격하게 의존한다는 것을 지정하는 종속성 지정자입니다. 유닛 B가 활성화되지 않으면 유닛 A도 실패합니다 (엄격한 종속성). 나는 신생에 익숙하지 않지만'systemd.unit (5)'를 살펴 본다. – direprobs