"Wants=" 및 "After=" 줄 모두에 systemd 단위를 지정해야 합니까, 아니면 "After="로 충분합니까?

"Wants=" 및 "After=" 줄 모두에 systemd 단위를 지정해야 합니까, 아니면 "After="로 충분합니까?

Wants=다음 내용 과 설명이 포함된 systemd 서비스 유형의 단위가 있다고 가정해 보겠습니다 After=.

Wants=foo.service
After=foo.service

on이 이미 켜져 있으면 실제로 지정해야 합니까 foo.service? 아니면 단위가 지정되지 않으면 전혀 시작되지 않기 때문에 필요할 수도 있습니다.Wants=After=Wants=foo.servicefoo.serviceWants=Requires=foo.service

답변1

Wants=상황에 따라 둘 다 가능하고 둘 다 작업을 수행하지만 효과가 다르기 때문에 다른 장치가 시작될 때 해당 장치가 시작되도록 하려면 foo.service해당 장치를 유지해야 합니다.

예를 들어 순차 종속성만 있는 경우 After=foo.service이는 두 장치가 모두 시작되는 경우(동일한 트랜잭션에서) foo.service현재 장치를 시작하기 전에 systemd가 먼저 시작되고 완전히 시작될 때까지 대기한다는 의미입니다.

이는 활성화 여부를 반드시 알 수 없고 foo.service서비스가 어느 방식으로든 작동할 수 있지만,만약에 foo.service활성화하면 서비스를 시작하기 전에 시작하려고 합니다.

아니면 단위가 지정 되지 않으면 전혀 시작되지 않기 때문에 Wants=foo.service필요할 수도 있습니다.foo.serviceWants=Requires=foo.service

네, 맞습니다. 명령어는 시퀀스 전용 명령어이므로 다른 유닛을 가져오지 않으며 해당 유닛이 이미 다른 수단으로 활성화된 경우에만 시퀀스에 영향을 미칩니다(일반적으로 자체적으로 직접 활성화하거나 세 번째 유닛을 통해 또는 이에 따라 활성화됨 After=). )Before=Wants=Requires=

관련 정보