service ujraindítás (bash script)

Fórumok

Sziasztok!

CentOS linuxon van egy service ami néha megdöglik. Azt szeretném, hogy ha ez megtörtént akkor induljon újra.

Egy bash scriptet szeretnék írni (ami 5 poercenként lefut) és kb ezt tartalmazza:

if ('service mysqld status' kimenete nem tartalmazza 'is running') {
service mysqld stop
service mysqld start
}

A feltétel résznél akadtam el, tud valaki segíteni? Nem értek bash script íráshoz sajnos.

Hozzászólások

OUTPUT=`service mysqld status`

if echo $OUTPUT | grep -w -q "is running" ; then
exit 0
else
service mysql stop
service mysql start
fi
exit 0

Persze hibakezelés nélkül, de hajrá....

Már csak be kell tenni crontab-ba

#!/bin/bash

echo "Mysql socket ellenorzese..."
if [ -S /var/run/mysqld/mysqld.sock ]; then
echo "Socket fajl megvan (vagy a mysql elszallt, de megmarad a socket file)..... OK?"
echo "Tovabbi ellenorzes folyamatban...."
if [ -s /var/run/mysqld/mysqld.pid ]; then
echo "Mysql pid fajl is megvan, a mysql mostmar tuti fut.... OK :)"
echo "Mysql PID number:"; cat /var/run/mysqld/mysqld.pid
fi
else
echo "Hoppa! A MySql NEM fut!!! inditom..."
/etc/init.d/mysql restart
fi

PID-re lehet keresni pgrep-pel is :)

--
http://kac.duf.hu/~balage/blog

-echo "Mysql PID number:"; cat /var/run/mysqld/mysqld.pid
+PID=`cat /var/run/mysqld/mysqld.pid`
+echo "Mysql PID number: $PID";
+if `kill -0 $PID >/dev/null 2>&1`; then
+ # oke fut ott valami
+ exit 0
+else
+ /etc/init.d/mysql restart
+fi

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

egy service csak ugy nem doglik meg. talan egyszerubb lenne megoldani a problemat, mintsem megkerulni.

t

monit szoftvert megnezheted. Monitoroz, ujraindit...