如何配置systemd使isc-dhcp-server在slapd启动完成后再启动?
如何配置systemd使isc-dhcp-server在slapd启动完成后再启动?
看起来你遇到的是典型的systemd并行启动导致的依赖问题——dhcp服务启动时,OpenLDAP的slapd服务还没完全就绪,所以连不上LDAP服务器。解决这个问题的核心是给isc-dhcp-server的systemd配置添加明确的依赖规则,让它等slapd彻底启动后再运行。
我推荐用systemd的drop-in配置文件来修改,这样不会覆盖原服务文件,后续软件更新也不会丢失你的配置:
首先创建drop-in配置目录:
sudo mkdir -p /etc/systemd/system/isc-dhcp-server.service.d创建并编辑override配置文件:
sudo nano /etc/systemd/system/isc-dhcp-server.service.d/override.conf在文件中写入以下内容,添加对slapd的依赖和启动顺序约束:
[Unit] # 确保isc-dhcp-server在slapd启动完成后再启动 After=slapd.service # 要求slapd必须启动成功,isc-dhcp-server才会尝试启动 Requires=slapd.service保存退出后,重新加载systemd的配置:
sudo systemctl daemon-reload可以先手动测试一下配置是否生效:
sudo systemctl restart isc-dhcp-server
这样设置后,下次服务器重启时,systemd会确保slapd服务完全启动并进入active状态后,才会启动isc-dhcp-server,就不会再出现启动时无法连接LDAP服务器的问题了。
另外补充一下:如果你的slapd还依赖网络服务(比如需要绑定特定IP),可以考虑把network.target也加入After字段,比如After=slapd.service network.target,不过从你手动重启能正常运行的情况来看,主要依赖还是slapd本身。
备注:内容来源于stack exchange,提问作者Stephen Winnall
相关产品推荐
相关产品推荐

