[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd: how to start a service (kea DHCP4) after all network interfaces are up?



On 3/16/2019 12:31 PM, Markus Schönhaber wrote:
> Hi,
>
> I have installed the kea DHCP4 server on a machine running recent
> stretch and two ethernet interfaces. kea is configured to answer DHCP
> requests on one of the interfaces.
> On boot, the kea-dhcp4-server.service is started but doesn't work. It
> logs this:
>> DHCPSRV_OPEN_SOCKET_FAIL failed to open socket: the interface enp3s0 is down or has no usable IPv4 addresses configured
> After manually restarting the service it works fine.
>
> It seems that the DHCP server is started while the interface it is
> configured to listen on is not yet up and therefore refuses to work.
> How can I make sure that the kea-dhcp4-server.service is started no
> sooner than after all network interfaces are up?
>
> What I've tried:
> 1 Copied /lib/systemd/system/kea-dhcp4-server.service to
>   /etc/systemd/system and added
>   Wants=networking.service
>   After=networking.service
>   to the [Unit] section of the copy.
>   The problem remained.
> 2 Created a shell script that does a
>   sleep 5
>   before exec'ing the original
>   /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf
>   and replaced the unit's ExexStart line with the path to this script.
>
> 2 does indeed help: the dhcp server works as it should after a reboot.
> Well, this is a workaround at best, a terrible mess at worst, but it's
> definitely not a solution. So I hope someone can answer my question above.
>

If your interface is configured by 'systemd', you could try:

$ systemctl enable systemd-networkd-wait-online

--
John Doe


Reply to: