[Pkg-sysvinit-devel] Bug#444980: udev not restarted after exiting runlevel 1

Petter Reinholdtsen pere at hungry.com
Mon Aug 31 19:41:43 UTC 2009


Here is a draft patch, if we decide to special case udev.  I'm not
sure we want it, but gave it a go to have a proposal on the table.
The patch is not tested.

Index: debian/initscripts/etc/init.d/killprocs
===================================================================
--- debian/initscripts/etc/init.d/killprocs     (revision 1676)
+++ debian/initscripts/etc/init.d/killprocs     (working copy)
@@ -13,9 +13,16 @@
 . /lib/lsb/init-functions

 do_start () {
-       # Kill all processes.
+       # Kill all processes, except udev, which should run in single
+       # user and runlevel 1.
+       OMITPIDS=""
+       if [ -x /sbin/udevd ] ; then
+           pid=$(pidof /sbin/udevd)
+           OMITPIDS="${OMITPIDS:+$OMITPIDS }-o $pid"
+
+       fi
        log_action_begin_msg "Asking all remaining processes to terminate"
-       killall5 -15 # SIGTERM
+       killall5 $OMITPIDS -15 # SIGTERM
        log_action_end_msg 0
        alldead=""
        for seq in 1 2 3 4 5 6 7 8 9 10; do
@@ -25,7 +32,7 @@
                # sense to wait for processes to die, or it fail and
                # there is nothing to wait for.

-               if killall5 -18 ; then
+               if killall5 $OMITPIDS -18 ; then
                    :
                else
                    alldead=1
@@ -36,7 +43,7 @@
        done
        if [ -z "$alldead" ] ; then
            log_action_begin_msg "Killing all remaining processes"
-           killall5 -9 # SIGKILL
+           killall5 $OMITPIDS -9 # SIGKILL
            log_action_end_msg 1
        else
            log_action_begin_msg "All processes ended within $seq seconds."

Happy hacking,
-- 
Petter Reinholdtsen



More information about the Pkg-sysvinit-devel mailing list