У меня есть Monit, отслеживающий Mysql. Когда машина внезапно выключается, например, сбой питания, mysqld не может быть перезапущен, если /var/lib/mysql/mysql.sock удален из-за ошибки Другой демон MySQL уже работает с тем же сокетом unix. Какова правильная конфигурация, чтобы Monit удалял файл при загрузке?
Я шучу, что тебе стоит просто купить UPS... Но защитить сервер от внезапного отключения питания довольно просто. Базовый ИБП может предоставить вам это.
Если это не варианты (поскольку я не знаю контекста среды и ограничений), вы уверены, что хотите, чтобы сервер и службы запускались автоматически после серьезного сбоя без ручного вмешательства? Если так...
Измените сценарий запуска в команде запуска Monit. Например:
check process mysqld
with pidfile "/var/run/mysqld.pid"
start program = "/sbin/service mysqld start"
stop program = "/sbin/service mysqld stop"
Вместо использования сценария запуска mysqld напишите сценарий оболочки, который проверяет наличие /var/lib/mysql/mysql.sock
файл.
Или, может быть, просто запустите команду /sbin/service mysqld restart
, поскольку это запускает stop()
за которым следует start()
. В сценарии инициализации команда stop удаляет файл sock.