У меня есть этот скрипт, я использую его для установки задания CRON для выполнения этого скрипта, чтобы он мог проверить, запущен ли сервис MySQL; если нет, то он перезапустит службу MySQL:
#!/bin/bash
service mysql status| grep 'mysql start/running' > /dev/null 2>&1
if [ $? != 0 ]
then
sudo service mysql restart
fi
У меня задано задание cron.
sudo crontab -e
, а затем добавил
*/1 * * * * /home/ubuntu/mysql-check.sh
Проблема в том, что он перезапускает MySQL при каждом выполнении задания cron. Даже если сервер запускает его, перезапустите службу MySQL, что является исправлением в сценарии для этого.
Ответ Раду почти сработал. Мне пришлось установить путь, чтобы он работал:
#!/bin/bash
PATH=/usr/sbin:/usr/bin:/sbin:/bin
if [[ ! "$(service mysql status)" =~ "start/running" ]]
then
service mysql start
fi
Ответ Radu работает, но этот скрипт работает также
#!/bin/bash
if [[ $(pgrep mysql | wc -l) = 0 ]];
then
sudo service mysql start;
fi