Hi I'm trying to check the RC of a program. If the RC is 2, I want it to exec a script that would allegedly fix the problem. But if after 3 attempts, the RC is still 2, then I want monit to stop trying.
So I put a check program like this: check program check_program with path "check_program" every 6 cycles if status == 2 for 6 cycles then unmonitor if status == 2 for 2 cycles then exec "fix_script.sh" Now I've found that I can have one or the other, not both. When I put both lines, just the latter applies: #monit -v Program Name = check_program Path = /path/to/check_program Monitoring mode = active Existence = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert Status = if 'check_program' exit value = 2 within 600 seconds then exec 'fix_script.sh' timeout 0 cycle(s) else if succeeded 1 times within 1 cycle(s) then alert Every = Check service every 6 cycles And the other way around: check program check_program with path "check_program" every 6 cycles if status == 2 for 2 cycles then exec "fix_script.sh" if status == 2 for 6 cycles then unmonitor # monit -v Program Name = check_program Path = /path/to/check_program Monitoring mode = active Existence = if does not exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert Status = if 'check_program' exit value = 2 within 600 seconds then unmonitor else if succeeded 1 times within 1 cycle(s) then alert Every = Check service every 6 cycles It's strange because I have put conditions on the same value in other checks, and it works alright: check process apache with pidfile /var/run/httpd.pid start program = "/etc/init.d/httpd start" with timeout 60 seconds stop program = "/etc/init.d/httpd stop" if cpu > 60% for 2 cycles then alert if cpu > 80% for 5 cycles then restart # monit -v (...) CPU usage limit = if greater than 80.0% 5 times within 5 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert CPU usage limit = if greater than 60.0% 2 times within 2 cycle(s) then alert else if succeeded 1 times within 1 cycle(s) then alert What am I missing? Thanks in advance, Tomàs
-- To unsubscribe: https://lists.nongnu.org/mailman/listinfo/monit-general
