dhcpcd: Wait for carrier before active
In order to ensure that network interfaces are active, but not necessarily fully configured, before *network.target* is reached, the *dhcpcd.service* unit now waits until at least one interface has processed the `CARRIER` event before being marked as active. This is accomplished using the *sd_notify* infrastructure, via the `systemd-notify` command, executed in a client configuration hook script.pull/2/head
parent
a299e3d91c
commit
37cea1dd47
|
@ -5,6 +5,9 @@ define DHCPCD_INSTALL_INIT_SYSTEMD
|
|||
$(INSTALL) -D -m u=rw,go=r \
|
||||
$(BR2_EXTERNAL_metricspi_PATH)/package/dhcpcd/dhcpcd-wait-online.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/dhcpcd-wait-online.service
|
||||
$(INSTALL) -D -m u=rwx,go=rx \
|
||||
$(BR2_EXTERNAL_metricspi_PATH)/package/dhcpcd/ready.hook.sh \
|
||||
$(TARGET_DIR)/usr/lib/dhcpcd/dhcpcd-hooks/01-ready
|
||||
$(INSTALL) -D -m u=rwx,go=rx \
|
||||
$(BR2_EXTERNAL_metricspi_PATH)/package/dhcpcd/online.hook.sh \
|
||||
$(TARGET_DIR)/usr/lib/dhcpcd/dhcpcd-hooks/99-online
|
||||
|
|
|
@ -4,7 +4,8 @@ Wants=network.target
|
|||
Before=network.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/dhcpcd -q --nobackground
|
||||
Type=notify
|
||||
ExecStart=/usr/sbin/dhcpcd -q --nobackground --env NOTIFY_SOCKET=${NOTIFY_SOCKET}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "${reason}" = CARRIER ]; then
|
||||
systemd-notify --pid=${pid} --ready
|
||||
fi
|
Loading…
Reference in New Issue