다른 서비스에 의존하는 서비스가 있습니다.
[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
.