Starta om viktiga processer automatiskt

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!

Kategorier: sysadmin

Kommentera (2)

 

Skriv en kommentar




Powered by WP Hashcash