Hi, I've suffered from this problem for almost a year, I guess. Thanks to the clue I got from this bug report, I've come up with a quick hack for my own machine: by telling sendsigs to omit systemd-udevd when killing processes:
--- /etc/init.d/udev.orig 2016-10-10 09:40:47.937302585 +0700 +++ /etc/init.d/udev 2016-10-10 09:42:59.701304680 +0700 @@ -203,6 +203,14 @@ else log_action_end_msg 0 'timeout' fi + + # Omit systemd-udevd on halt to allow cryptsetup to do the close + UDEVD_PID=$(pidof $DAEMON) + if [ ! -z "$UDEVD_PID" ]; then + OMITDIR=/run/sendsigs.omit.d + mkdir -p $OMITDIR + echo $UDEVD_PID > $OMITDIR/udev + fi ;; stop) With this patch to /etc/init.d/udev, my machine (using sysvinit) shuts down successfully again. Is the fix reasonable for udev? Regards, -- Theppitak Karoonboonyanan http://linux.thai.net/~thep/
--- /etc/init.d/udev.orig 2016-10-10 09:40:47.937302585 +0700 +++ /etc/init.d/udev 2016-10-10 09:42:59.701304680 +0700 @@ -203,6 +203,14 @@ else log_action_end_msg 0 'timeout' fi + + # Omit systemd-udevd on halt to allow cryptsetup to do the close + UDEVD_PID=$(pidof $DAEMON) + if [ ! -z "$UDEVD_PID" ]; then + OMITDIR=/run/sendsigs.omit.d + mkdir -p $OMITDIR + echo $UDEVD_PID > $OMITDIR/udev + fi ;; stop)