[gull] Script pour restarter mysql

Blaise Drayer blaise at drayer.ch
Tue Oct 10 13:43:55 CEST 2006


Hello,

> Je cherche un petit script qui regarde si un process est live et qui le
> restart si ce n'est pas le cas.
> Concrétement, sur un box debian, je veux vérifier si mysql tourne et sinon
> lancer un /etc/init.d/mysql start
> Je pense qu'il faut regarder si il y a un pid pour mysql mais je ne connais
> pas la syntaxe et ne trouve pas d'exemple de ce genre de script.

Si jamais le PID de mySQL se trouve sous /var/run/mysqld/mysqld.pid (en 
tout cas sous debian)

Il suffit de lancer dans un screen (l'avantage c'est de pouvoir afficher 
un "log" en live, ...) ou en mettant un "&" après ta commande un petit 
script shell du genre, ...

#!/bin/sh

while :
do
   PID="/var/run/mysqld/mysqld.pid"
   if [ ! -a $PID ]
    then
     /etc/init.d/mysql restart
   fi
   sleep 600
done

mieux vaut faire un restart au cas ou le  scipt se trompe, ... ça a 
l'avantage d'arrêter la base et de la redémarrer, ... J'aurais même 
tendance à arrêter, ... puis killer mysql et ensuite seulement démarrer 
mysql, ...

soit un truc du genre, ... :

#!/bin/sh

while :
do
   PID="/var/run/mysqld/mysqld.pid"
   if [ ! -a $PID ]
    then
     /etc/init.d/mysql stop
     sleep 50
     killall mysqld
     sleep 50
     /etc/init.d/mysql start
     sleep 300
   fi
   sleep 600
done

Y'a surement aussi moyen de travailler sur le résultat que ps donne 
comme test ou confirmation de test (avec ps -p et le numéro de pid), ...

A+

Blaise



More information about the gull mailing list