[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Multiple conditions on the RC of "check program" doesn't work (for me)
From: |
Tomas Nunez |
Subject: |
Multiple conditions on the RC of "check program" doesn't work (for me) |
Date: |
Fri, 20 Apr 2012 14:53:19 +0200 |
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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Multiple conditions on the RC of "check program" doesn't work (for me),
Tomas Nunez <=