Skip to content

Instantly share code, notes, and snippets.

@mheadd
Created May 13, 2013 20:00
Show Gist options
  • Star 53 You must be signed in to star a gist
  • Fork 21 You must be signed in to fork a gist
  • Save mheadd/5571023 to your computer and use it in GitHub Desktop.
Save mheadd/5571023 to your computer and use it in GitHub Desktop.
Simple bash script to check whether MySQL is running.
#!/bin/bash
UP=$(pgrep mysql | wc -l);
if [ "$UP" -ne 1 ];
then
echo "MySQL is down.";
sudo service mysql start
else
echo "All is well.";
fi
@lonelycowboy
Copy link

For me, i used this:

#!/bin/bash
email='email@example.com'
subject='mysql process down and up'
MYSQL_START='sudo service mysql start'
MYSQL='mysqld'
PGREP='/usr/bin/pgrep'
#check pid
$PGREP $MYSQL
if [ $? -ne 0 ]; then
$MYSQL_START | mail -s "$subject" $email <<< 'MySQL service was down and successfully started'
fi

and then
*/5 * * * * /home/user/scripts/mysql_check.sh > /dev/null 2>&1

@jalescardoso
Copy link

Start mysq if not started

UP=$(pgrep mysql | wc -l);
if [ "$UP" -le 1 ];
then
        echo "Iniciando mysql...";
        sudo service mysql start
else
        echo "Mysql online.";
fi

Copy link

ghost commented Aug 16, 2023

One line cron to check and start apache2 and mariadb services if they're not running (you can change mariadb to mysql):

* * * * * if [ $(pgrep apache2 | wc -l) -le 0 ]; then service apache2 start; fi
* * * * * if [ $(pgrep mariadb | wc -l) -le 0 ]; then service mariadb start; fi

@thedoabit
Copy link

thedoabit commented Aug 22, 2023

Better Script:
#!/bin/bash

email='xx@xxx.xx'
subject='MySQL process down and restarted'
MYSQL_START_COMMAND='sudo service mysql start'
MYSQL_PROCESS_NAME='mysqld'
PGREP_COMMAND='/usr/bin/pgrep'

#Check if MySQL is running
$PGREP_COMMAND $MYSQL_PROCESS_NAME

#If MySQL is not running, start it and send an email
if [ $? -ne 0 ]; then
$MYSQL_START_COMMAND
echo 'MySQL service was down and has been successfully started.' | mail -s "$subject" $email
fi

*/5 * * * * /root/mysqlstatus.sh > /dev/null 2>&1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment