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?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
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
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.