tisdag 4 december 2007

Starta en rails-applikation automatiskt

Ibland händer det att servrar behöver startas om. När man inte själv driftar dem utan överlåter det till en annan firma, exempelvis FS Data eller GleSYS som jag brukar använda, innebär det att man inte har full koll på när det sker. I morse fick en server Kernel Panic och behövde startas om. Vanligtvis är det inga problem, jag ser till att mina applikationer startas automatiskt när servern startas. Det gör jag med hjälp av crontab.
> crontab -l # Start all mongrels at reboot @reboot rm /u/apps/*/shared/log/*.pid @reboot mongrel_rails cluster::start -C /u/apps/(appname)/current/config/mongrel_cluster.yml
Som ni ser använder jag mongrel_cluster för att köra flera instanser av applikationen. @reboot-raden betyder att kommandot körs vid uppstart. Den första raden lade jag till i morse eftersom mongrel-processerna hade tvärdött vid kernel panic och lämnat efter sig några tomma .pid-filer. De ligger i vägen för nya mongrel-processer, så resultatet var att inte en enda mongrel-process ville köras. Med hjälp av rm-kommandot plockar jag bort alla pid-filer bland mina applikationer precis när servern startar. En annan detalj är att sökvägen till mongrel_cluster.yml, konfigurationsfilen för mongrel_cluster, finns i vårt subversion-repository. Den skickas med när jag checkar ut den senaste versionen av programmet, vilket innebär att det är mycket enkelt att ändra från 3 mongrel-processer till 4. För säkerhets skull har jag också ett litet ruby-script som körs från en server hemma. Det kollar om servrarna är online, och om någon inte är det får jag ett SMS med information om vilken server det är. Ett sådant SMS dök upp i morse, och i det här fallet var det ju tur. Hur startar du dina rails-applikationer med automatik? Kör du någon övervakning? Jag har experimenterat lite med Monit och numera God för att se till att processerna körs som de ska, men jag är inte riktigt nöjd än. God borde ju ha startat upp de här döda processerna kan man tycka, men det är möjligt att jag har konfat den knasigt.

2 kommentarer:

  1. Du kunde lika gärna skrivit på rappakaljanska, då jag faktiskt inte förstod någonting alls om vad det stod i texten :-) Men det var säkert jätteintressant egentligen...

    SvaraRadera
  2. Ursäkta, råkade jag lämna kvar några svenska ord i texten?

    SvaraRadera