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
_______________________________________________
gull mailing list
[email protected]
http://lists.alphanet.ch/mailman/listinfo/gull

Répondre à