Я установил OpenDKIM на Ubuntu Server 18.04, используя его с Modoboa, поэтому файл конфигурации содержит DSN для KeyTable и SigningTable для подключения к MariaDB. Я заметил, что служба всегда не запускается при перезагрузке, но после этого я могу запустить ее вручную без проблем, поэтому я проверил системный журнал и увидел следующие строки:
Jul 31 10:28:35 mail opendkim[897]: opendkim: /etc/opendkim.conf: dsn:mysql://opendkim:pass@127.0.0.1/modoboa/table=dkim?keycol=domain_name?datacol=id: dkimf_db_open(): Can't connect to MySQL server on '127.0.0.1' (111)
Jul 31 10:28:35 mail opendkim[991]: opendkim: /etc/opendkim.conf: dsn:mysql://opendkim:pass@127.0.0.1/modoboa/table=dkim?keycol=domain_name?datacol=id: dkimf_db_open(): Can't connect to MySQL server on '127.0.0.1' (111)
Jul 31 10:28:37 mail mysqld[1688]: 2018-07-31 10:28:35 139849791634560 [Note] /usr/sbin/mysqld (mysqld 10.1.29-MariaDB-6) starting as process 868 ...
Jul 31 10:28:41 mail /etc/mysql/debian-start[2018]: Upgrading MySQL tables if necessary.
Из этого вы можете видеть, что mysqld запускается сразу после OpenDKIM, я попытался переключить последовательность, используя: update-rc.d mysql defaults 50
и update-rc.d opendkim defaults 95
, это переместило mysql прямо перед OpenDKIM, но все же у него не было времени на инициализацию, поэтому он тоже не запустился.
На данный момент я исправил это с помощью специального сценария запуска, в котором sleep 10 && systemctl start opendkim
. Но мне нужно какое-то правильное решение для исправления порядка запуска.
Спасибо.
В systemd вы можете изменить порядок загрузки службы, изменив ее файл модуля и установив в опции «После», после какой службы она должна запускаться. Обычно файлы для этого находятся в:
/lib/systemd/system/nameofservice.service
Строка должна выглядеть примерно так (обновите с правильным именем)
After=mariadb.service