systemd 단위에서 "Requires" 옵션을 올바르게 사용하는 방법은 무엇입니까?

systemd 단위에서 "Requires" 옵션을 올바르게 사용하는 방법은 무엇입니까?

집에서 작성한 일부 시스템 서비스를 사용하여 몇 년 동안 문제 없이 이 호스트를 실행한 후, 일정 기간 동안 mariadb를 종료해야 하는 계획된 유지 관리를 수행한 후 여러 불만 사항을 받았습니다. 알고 보니 나는 이미 그랬다.

Requires = mariadb.service

유닛 파일에서 이러한 유닛은 mariadb가 닫힐 때 종속성 충돌로 인해 종료됩니다.

이는 놀라운 일이 아니지만 다소 위험합니다. 왜냐하면 일시적으로 종료된 서비스로 인해 중지된 장치가 종속 서비스가 다시 시작될 때 다시 시작될 수 있는지 여부를 systemd가 자동으로 확인하지 않기 때문입니다.

방금 종속성을 제거하고 서비스가 누락된 데이터베이스를 처리하도록 했습니다. 최악의 경우에는 충돌이 발생하고 systemd에 의해 자동으로 다시 시작됩니다.

"더 깨끗한"방법이 있습니까? 같은 방식으로 중요한 시스템 서비스를 실수로 종료하지 않을 것인지 어떻게 알 수 있나요?

예, 다음 내용을 읽었습니다.systemd "Requires=" 옵션에 대해 알아보세요.그러나 그것은 다른 문제를 다룬다.

관련 정보