[1/1] package/eudev: S10udevd: wait for udevd before triggering events

Message ID 20261029164212.672884-1-dario.binacchi@amarulasolutions.com
State New
Headers
Series [1/1] package/eudev: S10udevd: wait for udevd before triggering events |

Commit Message

Dario Binacchi Oct. 29, 2026, 4:42 p.m. UTC
start-stop-daemon starts udevd in the background and returns before
udevd listens to kernel events. The coldplug events generated right
after by "udevadm trigger" may then get lost, so that no module is
loaded at boot:

  Starting network: Waiting for interface eth0 to appear............... timeout!

Wait until udevd answers on its control socket before triggering the
events.

Fixes: 41258a81948fddfa7fc8ac06b69d77fa051b744d ("package/eudev: refactor init script and rename it to S10udevd")
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
 package/eudev/S10udevd | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Patch

diff --git a/package/eudev/S10udevd b/package/eudev/S10udevd
index 8bb8f6eb3a01..6602e92c2c86 100644
--- a/package/eudev/S10udevd
+++ b/package/eudev/S10udevd
@@ -35,6 +35,14 @@  start() {
 	status=$?
 	if [ "$status" -eq 0 ]; then
 		echo "OK"
+		# start-stop-daemon returns before udevd listens to kernel events:
+		# wait for it, or the events triggered below may get lost
+		i=0
+		while ! udevadm control --start-exec-queue 2>/dev/null; do
+			i=$((i + 1))
+			[ "$i" -ge 50 ] && break
+			sleep 0.1
+		done
 	else
 		echo "FAIL"
 	fi