Question

Upstart Doesn't Restart MySQL

Posted January 19, 2015 2.1k views

Upstart isn’t restarting mysqld after it crashes on my Ubuntu 14.04 droplet.

I’ve read the answers about adding swap space to avoid out-of-memory errors. They’re helpful, since the crashes are indeed being caused by OOM errors. I’ve added swap space to minimize those.

But why isn’t Upstart doing its job when crashes happen anyway?

The default /etc/init/mysql.conf script includes a respawn line. Shouldn’t that ensure mysql gets restarted even when it runs out of memory?

There’s also a respawn limit 2 5 line. Could that be preventing the restart somehow?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

The additional line limits how many time within a specific period the process can restart. From the Upstart docs:

If the job is respawned more than COUNT times in INTERVAL seconds, it will be considered to be having deeper problems and will be stopped.

So if you had:

# respawn limit COUNT INTERVAL
respawn limit 3 10

If your process crashed more than three times within 10 seconds, it would not try to restart again. You may want to try increasing these values.

Hello, all

You can create a simple bash script to check if MySQL is running and if not to restart it.

#!/bin/bash

# Check if MySQL is running
sudo service mysql status > /dev/null 2>&1

# Restart the MySQL service if it's not running.
if [ $? != 0 ]; then
    sudo service mysql restart
fi

Run this script every 5 minutes using a cron job like this one:

 */5 * * * * /home/user/scripts/monitor.sh > /dev/null 2>&1

Hope that this helps!
Regards,
Alex

Submit an Answer