Starta om viktiga processer automatiskt
Publicerat 16 maj 2009 av Christian
Om du driftar din egen webbserver kan det vara bra om viktiga processer startas om när de kraschar. Det är inte så vanligt att det händer, men inte heller helt osannolikt.
De processer som jag har valt att övervaka och starta om ifall de av någon anledning inte längre körs är:
- SSH (annars blir det jobbigt att logga in)
- Apache
- MySQL
Det finns färdiga verktyg för detta, men jag valde istället att ta den enkla vägen och skapa ett litet bash-skript som kontrollerar om processerna körs; annars startas de. Skriptet kör jag sedan med cron var 10:e minut.
Så här ser mitt skript ut:
#!/bin/bash
/usr/bin/pgrep -u root sshd >/dev/null
if [ $? -ne 0 ]
then
/etc/init.d/ssh restart
fi
Det anropar först programmet pgrep, som söker bland processer som startats under användaren ”root” efter ”sshd”. Om returvärdet från pgrep inte är 0, betyder det att ingen process med det namnet hittades. Alltså startar vi om SSH.
Observera att sökvägen till startskripten varierar mellan distributioner och operativsystem, så det är inte säkert att ovanstående är helt korrekt för din server.
Gör sedan om anropet till pgrep och if-satsen för varje process du vill övervaka. Kom ihåg att testa skriptet när du är klar, och lägga in det i cron!




Monit finns också, en daemon som övervakar åtminstone apache och mysql, larmar via e-post och startar om när det behövs.
http://mmonit.com/monit/
Tack för tipset, Magnus! Monit verkar kraftfullt.