]> git.pld-linux.org Git - packages/systemd.git/commitdiff
- retrigger events/wait for events
authorfreetz <freetz@pld-linux.org>
Thu, 26 Jan 2006 16:57:42 +0000 (16:57 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    start_udev -> 1.31

start_udev

index 587acbb6c59c9d43eb72accbaaac6b8d71c95667..a21a18aa380b12e8eaedf023d1b56021eb2b9c2a 100644 (file)
@@ -106,17 +106,54 @@ kill_udevd > "$udev_root/null" 2>&1
 
 if [ -f "/sys/class/tty/console/uevent" ]; then
        # Start udevd daemon
-       udevd -d
+       udevd --daemon
        
         # Making extra nodes
        make_extra_nodes
        
         # Setting default hotplug handler
        set_hotplug_handler
+       
+       # retrigger all events
+       mkdir -p /dev/.udev/queue
+       list=$(echo /sys/bus/*/devices/*/uevent)
+       list="$list $(echo /sys/class/*/*/uevent)"
+       list="$list $(echo /sys/block/*/uevent /sys/block/*/*/uevent)"
+       for i in $list; do
+           case "$i" in
+               */device/uevent|*\**)
+                   continue
+                   ;;
+               */class/mem/*|*/class/tty/*)
+                   first="$first $i"
+                   ;;
+               */block/md*)
+                   last="$last $i"
+                   ;;
+               */*)
+                   default="$default $i"
+                   ;;
+           esac
+       done
+
+       # trigger the sorted events
+       for i in $first $default $last; do
+           echo "add" > "$i"
+       done
+
+
+       # wait for the events to finish
+       loop=300
+       while test -d /dev/.udev/queue; do
+           sleep 0.1;
+           test "$loop" -gt 0 || break
+           loop=$(($loop - 1))
+       done
 else
-    echo "udev requires a kernel >= 2.6.15, not started."
-    exit 0                                                
+       echo "udev requires a kernel >= 2.6.15, not started."
+       exit 0                                                
 fi
+
 ret=$(( $ret + $? ))
 [ $ret -eq 0 ] && ok || fail
 exit 0
This page took 0.060281 seconds and 4 git commands to generate.