충돌이 발생한 경우 Monit에서 서비스를 다시 시작하기 전에 쉘 스크립트를 실행하는 방법

충돌이 발생한 경우 Monit에서 서비스를 다시 시작하기 전에 쉘 스크립트를 실행하는 방법

내 Linux 상자에서 Monit 5.3.2를 사용하고 있습니다. Monit을 사용하여 일부 서비스를 모니터링하고 있습니다. 재시작 명령을 실행하기 전에 스크립트를 실행하고 싶습니다. 나는 아래 조건을 동일하게 사용했습니다.

if does not exist for 2 times within 3 cycles then exec  "/bin/bash -c 'touch /tmp/somefile'" as uid someuser and gid someuser

if does not exist for 10 cycles then restart

불행히도 다시 시작 작업만 실행됩니다.

누구든지 첫 번째 규칙이 실행되지 않는 이유를 식별하도록 도와줄 수 있습니까? 문제를 해결하는 다른 방법이 있나요?

답변1

나는 현재 비슷한 문제를 겪고 있는 초보자이기 때문에 이것은 확실한 대답이 아닙니다.

나는 현재 마지막 규칙이 이전의 모든 규칙보다 우선한다는 의심을 갖고 있습니다.

그렇다면 다음을 시도해 보세요.

if does not exist for 2 times within 3 cycles 
then exec  "/bin/bash -c 'touch /tmp/somefile'" as uid someuser and gid someuser 
ELSE if does not exist for 10 cycles then restart

관련 정보