let me first show you the following configuration:
check host webserver with address 127.0.0.255 if failed port 80 protocol http request "/serverawake.php" status != 502 timeout 10 seconds then restart if failed port 80 protocol http request "/serverawake-modphp54.php" status != 502 timeout 10 seconds then restart if 5 restarts within 5 cycles then timeout restart program = "/usr/local/sbin/webserver.py restart" with timeout 60 seconds
In this case when both protocol checks failed monit will execute the given restart program twice. Is this behavior really intended? I can imagine that this maybe makes sense for "alert" action but for all other actions I would appreciate a unique action handling. Whats your opinion about that issue?