Debian Bullseye Bookworm (12.5) naprakész rendszer, amelyen többek közt egy kea-dhcp4-server van. Na ezzel vannak gondok. Amikor újraindítom bármiért a gépet, a dhcp server elhasal.
jún 02 15:55:56 ..... kea-dhcp4[1779]: WARN DHCPSRV_OPEN_SOCKET_FAIL failed to open socket: the interface enp3s0 is not running
Ez ugyan csak 'warn', de ezen kéne futnia, utána nem sokkal ki is lép (az időpontot szándékosan hagytam benne, később lényeges lesz).
A kea-dhcp4-server.service file részlete:
Wants=network-online.target
After=network-online.target
Tehát akkor kéne indulni, ha már online.
A network-online.service.wants könyvtárban symlink van a networking.service NetworkManager-wait-online.service service-ekre (network-managerrel van beállítva a hálózat)
A NetworkManager-wait-online.service logja:
jún 02 15:55:47 ...... systemd[1]: Starting NetworkManager-wait-online.service - Network Manager Wait Online...
jún 02 15:55:55 ...... systemd[1]: Finished NetworkManager-wait-online.service - Network Manager Wait Online.
Ez eddig jó, megvárta a Kea, míg a network-manager végzett, és azt mondta, hogy online. Ehhez képest:
journalctl -b -0 -u NetworkManager.service
jún 02 15:55:49 ..... NetworkManager[624]: <info> [1717336549.1157] manager: (enp3s0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
jún 02 15:55:49 ..... NetworkManager[624]: <info> [1717336549.1206] device (enp3s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
.....
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5688] device (enp3s0): carrier: link connected
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5700] device (enp3s0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5725] policy: auto-activating connection 'Supervisor enp3s0' (98edc68d-e0ea-3317-8a50-97a85def3b2a)
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5736] device (enp3s0): Activation: starting connection 'Supervisor enp3s0' (98edc68d-e0ea-3317-8a50-97a85def3b2a)
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5738] device (enp3s0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5744] manager: NetworkManager state is now CONNECTING
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5748] device (enp3s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5764] device (enp3s0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5793] policy: set 'Supervisor enp3s0' (enp3s0) as default for IPv4 routing and DNS
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.5972] device (enp3s0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.6473] device (enp3s0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.6479] device (enp3s0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.6486] manager: NetworkManager state is now CONNECTED_SITE
jún 02 15:56:30 ..... NetworkManager[624]: <info> [1717336590.6493] device (enp3s0): Activation: successful, device activated.
Vagyis a networkmanager szépen készre jelenti a hálózatot, majd később be is állítja. Ez így normális? Nem gondolom, pont ezért volna a NetworkManager-wait-online.service, hogy várjon addig, míg nincs beállítva a hálózat.
Lehet ezt workaroundolni valahogy a systemd-ben, tehát hogy addig várjon egy service, amíg egy megadott interface-nek nincs rendes IP címe?