OpenDKIM 在 Ubuntu 18.04 上先于 MariaDB 启动

OpenDKIM 在 Ubuntu 18.04 上先于 MariaDB 启动

我在 Ubuntu Server 18.04 上安装了 OpenDKIM,并将其与 Modoboa 一起使用,因此配置文件包含 KeyTable 和 SigningTable 的 DSN 以连接到 MariaDB。我注意到该服务在重新启动时总是无法启动,但之后我可以毫无问题地手动启动它,因此我检查了系统日志并看到了以下几行:

Jul 31 10:28:35 mail opendkim[897]: opendkim: /etc/opendkim.conf: dsn:mysql://opendkim:[email protected]/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:[email protected]/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 50update-rc.d opendkim defaults 95,这会将 mysql 移动到 OpenDKIM 之前,但它仍然没有时间初始化所以它也没有启动。

目前,我使用自定义启动脚本修复了这个问题sleep 10 && systemctl start opendkim。但我希望找到一些合适的解决方案来修复启动顺序。

谢谢。

答案1

在 systemd 上,您可以通过更改服务的单元文件并在“After”选项中设置它应在哪个服务之后启动来更改服务的启动顺序。通常,该文件位于:

/lib/systemd/system/nameofservice.service

该行应该与此类似(使用正确的名称更新)

After=mariadb.service

相关内容