[Pkg-sysvinit-devel] Bug#638019: /run/initctl

Robert Millan rmh at debian.org
Sun Jan 8 14:34:13 UTC 2012


El 8 de gener de 2012 15:14, Roger Leigh <rleigh at codelibre.net> ha escrit:
> The problem is that there isn't a signal to force a re-exec.  You
> have to do it through the control pipe.

Ah I see.  In retrospect, this seems like a bad decision.  Well, gotta
work with what we've got...

>  "init u" sends the signal
> through the pipe to trigger the re-exec, which requires that the
> old pipe be present.  Because the new binaries will use the new
> path, "init u" on its own won't work.  I would suggest this strategy:
>
> 1) Create /run/initctl
> 2) Symlink /dev/initctl (or /etc/.initctl) to /run/initctl
> 3) Send SIGUSR1 to init
>   → init reopens using the old path, but is redirected to use
>     /run/initctl
> 4) Wait for that action to complete
> 5) Run "init q" to re-exec init.  The new init will use the new
>   paths
> 6) Delete the no-longer-needed /dev/initctl (or /etc/.initctl).

Seems good, but I dislike step 4, as it opens the door for race conditions.

Can't we just remove steps 4 and 5?  I think everything would work without them.

-- 
Robert Millan





More information about the Pkg-sysvinit-devel mailing list