다른 서비스가 시작되면 자동으로 서비스 시작

다른 서비스가 시작되면 자동으로 서비스 시작

다른 서비스에 의존하는 서비스가 있습니다.

[Unit]
After=main.service
Requires=main.service

[Service]
ExecStart=/usr/local/bin/dependent
Restart=always

멋진 점:

  • 실행하면 서비스도 중지 systemctl stop main됩니다 .dependent
  • 실행하면 서비스도 시작됩니다 systemctl restart main.dependent

그러나 실행해도 systemctl main start종속 서비스가 시작되지는 않습니다.

어떻게 해야 합니까?

답변1

그리고 After=매개변수 Before=엄격하게두 서비스를 시작(및 종료할 수도 있음)하는 명령에 사용됩니다(두 서비스 모두 시작하라는 요청을 받은 경우). 서비스를 나열한다고 해서 해당 서비스도 시작된다는 의미는 아닙니다.

다른 서비스가 시작되는지 여부를 제어하려면 , 또는 ( 리소스 섹션에서 ) 또는 ( 리소스 섹션에서 ) Requires=을 사용해야 합니다 .Wants=Conflicts=[Unit]WantedBy=[Install]

귀하의 경우, 특정 서비스가 의존하는 서비스가 시작될 때 특정 서비스가 시작되기를 원합니다(그렇게 할 이유가 없기 때문에 자동으로 발생하지 않습니다). 파일에 다음을 추가한 후 실행해야 합니다 systemctl enable dependent.

[Install]
WantedBy=main.service

이는 main시작되면 서비스도 시작하고, 서비스가 실패하더라도 중지하지 않음을 의미합니다 main.

관련 정보