Ekibimin bir üyesi, monitin sık sık (her dakika) kontrol etmesini sağlayan oldukça akıllı bir çözüm buldu , ancak hizmeti yeniden başlatmaya çalıştıktan sonra (~ 10 dakika sürüyor), başlamadan önce belirli bir yetkisiz kullanım süresi bekleyecek tekrar.
Bu, yavaş başlatma ile birlikte müşteriler için çok daha büyük bir etki yaratan çekler arasında çok uzun süre beklemeyi önler. Monitin son başarısızlıktan zaten harekete geçtiğini belirtmek için bayrak görevi gören bir ara komut dosyası kullanarak çalışır.
check host bamboo with address bamboo.mysite.com
if failed
port 443 type tcpSSL protocol http
and status = 200
and request /about.action
for 3 cycles
then exec "/bin/bash -c 'ps -ef | grep -v "$$" | grep -v "grep" | grep restartBamboo.sh >/dev/null 2>&1; if [ $? -ne 0 ]; then /opt/monit/scripts/restartBamboo.sh; fi'"
Bambu (yavaş başlangıç web uygulaması) arka arkaya 3 dakika boyunca kapalıysa, yeniden başlatın, AMA yalnızca bir yeniden başlatma komut dosyası zaten çalışmıyorsa.
Çağrılan komut dosyası, hizmet için en yavaş başlangıç zamanından UZUN bir süre bekleyen belirli bir uykuya sahip (bizim durumumuzda ~ 10'da bitirmeyi umuyoruz, bu yüzden 15 için uyuyoruz)
#!/bin/bash
echo "Retarting bambo by calling init.d"
/etc/init.d/bamboo stop
echo "Stopped completed, calling start"
/etc/init.d/bamboo start
echo "Done restarting bamboo, but it will run in background for sometime before available so, we are sleeping for 15 minutes"
sleep 900
echo "done sleeping"