Сервер MySQL выходит из строя через несколько дней или недель, но ночью. Я пробовал искать этот форум и нашел эту команду
*/5 * * * * service mysql status > /dev/null || service mysql start
Этот статус проверки каждые пять минут, и если не работает, он пытается перезапустить, но я получил электронное письмо, в котором говорится, что команда не найдена в электронном письме
/bin/sh: service: command not found
я использую
Еще одна вещь: когда MySql не работает, мне не нужно перезапускать его, мне просто нужно войти в панель администратора. Сначала отображается ошибка, затем после обновления все работает нормально, даже MySql запускается снова.
cron
по умолчанию не имеет пользовательской (особенно root) среды PATH.
Попробуйте дать весь путь
*/5 * * * * /usr/sbin/service mysql status > /dev/null || /usr/sbin/service mysql start
Если это не сработает (CentOS 7 использует systemd), попробуйте заменить service
с участием /bin/systemctl
*/5 * * * * /bin/systemctl status mysql > /dev/null || /bin/systemctl start mysql
Обратите внимание, что systemctl
сначала принимает команду, затем - службу.
Видеть https://www.thegeekdiary.com/centos-rhel-7-beginners-guide-to-systemd-service-units/
В предыдущих версиях RHEL служебная утилита использовалась для остановки и запуска служб. В RHEL 7 утилита systemctl предоставляет эквивалентный набор подкоманд.
Некоторые дистрибутивы (например, Ubuntu) предоставляют удобный service
сценарий, который делает systemctl
команды под капотом - не уверен, что CentOS 7 предоставляет эту утилиту.