서비스를 중지하고 스크립트를 실행한 후 서비스를 다시 시작하도록 타이머를 설정하고 싶습니다.
한 가지 가능성은 다음과 같습니다.
Type=oneshot
ExecStartPre=/bin/systemctl stop myservice
ExecStart=/usr/local/bin/myscript.sh
ExecStartPost=/bin/systemctl start myservice
다른 하나는 myscript.sh
을 포함하여 모든 것을 다루는 것 입니다 systemctl
.
systemctl
그러나 서비스와 상호 작용하기 위한 시스템 내장 메커니즘이 있을 수 있는 경우 서비스 선언에 사용하는 것이 어색하다고 생각합니다. 이러한 작업을 수행하는 더 깔끔한 방법이 있습니까?
답변1
WatchdogSec을(ab?) 이용하여, 규정된 시간 내에 확인하지 못한 경우 서비스가 종료됩니다. 그런 다음 다시 시작되지만 먼저 스크립트를 실행합니다.
WatchdogSec={interval}
Restart=on-watchdog
ExecStopPost=/script.sh
인용하다:감시 보안
서비스가 실행되는 동안 백업이 가능하다면 더 좋은 서비스가 될 것입니다.