如何使用 systemd-networkd 强制 network.target 等待 DHCP?

Bap*_*cht 6 networking dhcp systemd

我正在使用 systemd-networkd 来配置我的接口:

[Match]
Name=enp3s0

[Network]
DHCP=v4    
Run Code Online (Sandbox Code Playgroud)

除了在启动时,某些服务不等待 DHCP 完成之外,它运行良好。例如,我的 NFS 挂载目录和 nginx 失败,因为它们启动时没有网络。

有没有办法强制 network.target 等待 DHCP?


编者注。根据文档

许多网管方案提供了一种无条件拉入network-online.target的方式,从而将network.target的效果提升为network-online.target的效果。

如果你使用 systemd-networkd,你可以通过启用 systemd-networkd-wait-online.service 来做到这一点:

systemctl enable systemd-networkd-wait-online.service

但是我试过了,它没有根据network.target等待 DHCP提供服务。它只提供明确依赖于network-online.target等待 DHCP 的服务,实际上它需要使其工作。

小智 6

使用 systemd-networkd 时,要确保所有接口均已启动并已分配 IP 地址,请使用:

systemctl enable systemd-networkd-wait-online.service
Run Code Online (Sandbox Code Playgroud)

其他人可能正在使用 NetworkManager,在这种情况下将是:

systemctl enable NetworkManager-wait-online.service
Run Code Online (Sandbox Code Playgroud)

请参阅: http: //www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

  • 我这样做了,仍然没有运气...... (3认同)