시스템 장치의 "이후"가 종료 또는 다시 시작 순서에 영향을 줍니까?

시스템 장치의 "이후"가 종료 또는 다시 시작 순서에 영향을 줍니까?

다음과 같이 네트워킹 후에 시작되도록 서비스를 설정했습니다.

[Unit]
Description=Some service
After=network.target

서비스 자체는 find를 실행하고 수행해야 하는 작업을 수행합니다. 그러나 재부팅 명령을 실행하면 systemd에 다음과 같은 내용이 표시됩니다.

A stopjob is running for "SERVICE"...

그리고 서비스가 실제로 종료되기 전에 기본 시간 제한이 통과됩니다.

"After" 절을 제거하면 서비스가 다시 정상적으로 실행되고 다시 시작하려고 할 때 더 이상 시간 초과가 발생하지 않습니다.

이유가 무엇인지 궁금합니다. "이후"는 지정된 대상 이전 또는 이후에 서비스가 종료되거나 중지되어야 함을 의미합니까? 내 말은, 정류장 순서에도 어떤 식으로든 영향을 미친다는 뜻인가요?

답변1

내 질문이 너무 빨리 왔어. systemd 매뉴얼 페이지에는 다음과 같이 명확하게 명시되어 있습니다.

순차 종속성을 갖는 두 장치가 종료되면 시작 순서가 반대가 됩니다. 즉, 한 장치가 다른 장치에 After=를 구성한 경우 두 장치가 모두 종료되면 전자가 후자보다 먼저 중지됩니다. 두 장치 사이의 시퀀스 종속성을 가정할 때 한 장치가 종료되고 다른 장치가 시작되면 종료 시퀀스가 ​​시작 시퀀스보다 우선합니다. 순서 종속성이 After=인지 Before=인지는 중요하지 않습니다.

관련 정보