Страница 1 из 1

Exim стартует раньше MySQL

Добавлено: 2008-12-18 11:44:40
MaxTurkin
После перезагрузки сервера заметил проблему при старте Exim'а - он не может подключиться к MySQL, тот еще не запустился. Пришлось перезапустить Exim вручную еще раз, только тогда он установил соединение.

tail /var/log/messages

Код: Выделить всё

2008-12-18 10:58:17 exim 4.69 daemon started: pid=706, -q30m, listening for SMTP on port 25 (IPv6 and IPv4)
2008-12-18 10:58:18 failed to expand "${lookup mysql{...}" while checking a list: lookup of "..." gave DEFER: MYSQL connection failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
tail /var/db/mysql/hostname.err

Код: Выделить всё

081218 10:58:17  mysqld started
081218 10:58:18  InnoDB: Started; log sequence number 0 128699
081218 10:58:18 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.0.67-log'  socket: '/tmp/mysql.sock'  port: 3306  FreeBSD port: mysql-server-5.0.67_1
Судя по логам, они стартуют одновременно в одну секунду. Видимо, Exim стартует немного быстрее и в следующую секунду сообщает об ошибке подключения, а довольный MySQL одновременно с этим сообщает о создании сокета.

Подскажите, как управлять порядком загрузки служб в FreeBSD.

Re: Exim стартует раньше MySQL

Добавлено: 2008-12-18 11:56:12
Alex Keda

Код: Выделить всё

man rcorder
тема неоднократно обсуждалась

Re: Exim стартует раньше MySQL

Добавлено: 2008-12-18 12:02:48
neyro
Эксим вроде бы делает попутку подключенияпри каждом обращении к базе из ACL..разве нет ?

Re: Exim стартует раньше MySQL

Добавлено: 2008-12-18 12:15:56
Alex Keda
neyro писал(а):Эксим вроде бы делает попутку подключения при каждом обращении к базе из ACL..разве нет ?
насчёт каждого не знаю - но на кажоые письмо создаётся форк - он делает

Re: Exim стартует раньше MySQL

Добавлено: 2008-12-18 12:29:41
hizel
попробуйте
в /usr/local/etc/rc.d/exim вместо

Код: Выделить всё

# REQUIRE: LOGIN
внедрить

Код: Выделить всё

# REQUIRE: LOGIN mysql

Re: Exim стартует раньше MySQL

Добавлено: 2008-12-18 12:32:27
MaxTurkin
Да, я уже поправил этот файл и посмотрел rcorder - теперь порядок верный. Но оказалось, что это не требуется.

Видимо, так "удачно" совпало что пришло письмо в момент когда MySQL не был ещё запущен. Благодаря ему узнал много интересного про порядок загрузки служб и про то что Exim коннектится к базе данных каждый раз когда приходит письмо. Я почему-то думал, что он устанавливает соединение один раз и держит его открытым.

Спасибо огромное всем ответившим.