monit

monit - Can I restart a process if system memory is too much?


I have this rule for system:

check system $HOST
    if memory usage > 90% for 3 cycles then alert

and this rule for a process:

check process my_process matching "..."
    restart program = "..."

I would like that if system memory is more than 90% to restart the process my_process.

Is this possible with monit?

I tried variants of if memory usage > 90% for 3 cycles then restart my_process but always the syntax is not recognized on monit reload.


Solution

  • Back to your sample, you can use something like this.

    check system $HOST
      if memory usage > 90% for 3 cycles then 
         exec "/bin/bash -c '/usr/local/bin/monit restart my_process'"
    

    To restart a service named "my_process". With regards, Lutz