[arch-projects] [PATCH] [RFC][mkinitcpio] Cleanly stop udev >= 168 as recommended by upstream.

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Sat Apr 30 16:47:13 EDT 2011

N0: udev >= 168 is needed.
N1: I guess the order is correct (first cleanup then exit).
N2: device-mapper/LVM udev rules must be parsed for initramfs creation
    to add OPTIONS+="db_persist"

>From udev NEWS:
The running udev daemon can now cleanly shut down with:
  udevadm control --exit

Udev in initramfs should clean the state of the udev database
with: udevadm info --cleanup-db which will remove all state left
behind from events/rules in initramfs. If initramfs uses
--cleanup-db and device-mapper/LVM, the rules in initramfs need
to add OPTIONS+="db_persist" for all dm devices. This will
prevent removal of the udev database for these devices.

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386 at yahoo.com.ar>
 init |   13 ++++---------
 1 files changed, 4 insertions(+), 9 deletions(-)

diff --git a/init b/init
index 7b81a1a..a2c6c8a 100644
--- a/init
+++ b/init
@@ -118,15 +118,10 @@ elif [ ! -x "/new_root${init}" ]; then
     launch_interactive_shell --exec
-#Special handling if udev is running
-udevpid=$(/bin/pidof udevd)
-if [ -n "${udevpid}" ]; then
-    # Settle pending uevents, then kill udev
-    /sbin/udevadm settle
-    /bin/kill ${udevpid} > /dev/null 2>&1
-    while /bin/pidof udevd >/dev/null; do
-        sleep 0.1
-    done
+# Stop udevd if is running
+if [ "${udevd_running}" -eq 1 ]; then
+    /sbin/udevadm info --cleanup-db
+    /sbin/udevadm control --exit
 for d in proc sys dev run; do

More information about the arch-projects mailing list