我在UbuntuServer18.04上安装了OpenDKIM,它与Modoboa一起使用,因此配置文件包含用于KeyTable和SigningTable连接到MariaDB的DSN。我注意到服务总是在重新启动时无法启动,但是之后我可以手动启动它,没有问题,所以我检查了syslog并看到了以下几行:
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来切换序列,这在OpenDKIM之前移动了mysql,但是它仍然没有时间去弱化,所以它也没有启动。
现在,我使用具有sleep 10 && systemctl start opendkim的自定义启动脚本修复了它。但我想找个合适的解决方案来解决启动订单问题。
谢谢。
发布于 2018-08-01 13:47:11
在systemd上,您可以更改服务的启动顺序,更改它的单元文件,并在' after‘选项中设置它应该在之后启动的服务。该文件通常在以下文件中:
/lib/systemd/system/nameofservice.service该行应该与此类似(用正确的名称进行更新)
After=mariadb.servicehttps://serverfault.com/questions/924435
复制相似问题