Entry
How can I use a shell script to make sure Mysql server is alive and restart it if it is not running?
Feb 12th, 2008 04:20
dman, josh oshiro, Brad Lay, Narendra Jain, Chris Ditty, http://sturly.com
You have to check if the mysql process is running with this command:
#ps -ef | grep mysql | grep -v grep
or
#ps -auxwww | grep mysql | grep -v grep
depending on which nix* your using.
Then check if the result of this command was 0 (success) or other than
0 (failed).
If the result is other than 0 then it means that mysql is not running.
You should then start mysql with a command that looks something like
this:
#mysql -u <user> --password='<password>'
This will do it all in one shot
#ps -ef | grep mysql | grep -v grep || mysql -u <user> --
password='<password>'
this says if mysql is not running run mysql
remember, if ps -ef does not work then try using ps -auxwww instead.
[added by brad]
I used this on my Debian 3.0 Unstable box, in cron.
0-59/1 * * * * ps -ef | grep mysqld | grep -v grep >> /dev/null
|| /etc/init.d/mysql start
if its running, it just continues on its merry way, if its not, it
starts it and emails you about it.
Works great. Nice and simple.