느린 서비스를 다시 시작할 때 systemd가 "이후" 종속성을 유지하도록 만드는 방법

느린 서비스를 다시 시작할 때 systemd가 "이후" 종속성을 유지하도록 만드는 방법

우리 시스템에는 A와 B라는 2개의 종속성이 있습니다. 여기서 A는 B에 대한 "이후" 종속성을 갖습니다.

어떤 경우에는 두 서비스를 즉시 다시 시작하고 싶습니다. 문제는 B가 우아하게 멈추기 때문에 시간이 오래 걸린다는 것이다. A는 먼저 중지를 마치고 B에 대한 종속성이 충족되므로 즉시 다시 시작합니다. 그런 다음 B는 A 이후에 다시 시작됩니다. 그 반대는 아닙니다.

우리가 원하는 동작은 B가 중지 및 재시작을 완료할 때까지 A가 재시작하지 않는 것입니다.

이 문제를 해결할 수 있는 시스템 설정이 있습니까? BindsTo는 우리가 원하는 동작을 제공합니까?

답변1

재부팅할 때마다 재부팅 B하려면 A다음을 사용할 수 있습니다.BindsTo=B+After=B서비스 지침 A. 또는 systemd에 덜 의존할 수 있는 보다 "더러운" 접근 방식의 경우 다음을 사용 A하여 서비스에 대한 다시 시작 명령을 추가 할 수 있습니다.ExecStartPost=B유닛 파일 아래의 지시어.

이렇게 하면 서비스가 시작(또는 다시 시작)될 때마다 B서비스도 강제로 다시 시작됩니다 A.

관련 정보