El 8 de gener de 2012 16:47, Roger Leigh <[email protected]> ha escrit:
> No, 2) is replacing with a symlink, while 6) is removing the
> now unneeded symlink.  I noticed that if you mv /dev/initctl
> /dev/initctl.old, init (I presume) immediately recreates
> /dev/initctl.
>
> The following sequence appears to work:
>
> # New control channel
> mkfifo /run/initctl
> # Symlink to new channel
> ln -s /run/initctl /dev/initctl.new
> # Replace existing channel with symlink
> mv /dev/initctl.new /dev/initctl
> # Reopen control channel (now /run/initctl)
> kill -SIGUSR1 1
> # Replace init with new version using new paths
> init u
> # Delete old path
> [rm /run/initctl]
>
> If /dev/initctl is not open or is invalid, "init u" exits with
> an error, so we can loop on this in the postinst to wait until
> it's reopened.  It's pretty quick though, so perhaps loop a
> fixed number of times and then continue with a warning if not
> possible, especially since it's not fatal?

Sounds good.  Btw, please remember not to hardcode /dev/initctl since
the old path is kernel-specific.

-- 
Robert Millan



_______________________________________________
Pkg-sysvinit-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-sysvinit-devel

Reply via email to