On Fri, Feb 07, 2014 at 01:42:36PM +0100, Eckehard Berns wrote: > On Fri, Feb 07, 2014 at 12:03:03PM +0000, sin wrote: > > I've fixed the issues you mentioned except the case when rootfs is mounted > > as ro. > > > > How would you tackle that? > > I thought about this a bit. If the fifo is present when booting the > ro root fs everything should be fine. You wouldn't be able to unlink > fifopath or create it, but since it's already there the call to open() > should succeed. You'd have to ignore errors for unlink() and mkfifo() > and only check open() for errors. I can't test this at the moment, but I > think this might work.
Hi, I refactored the code and this is what I have now: http://git.2f30.org/sinit/commit/?id=8194f460daaa9343ce9863838b14132d0ad8037c >From the commit message: "We no longer have two processes, one for reaping children and another for handling the FIFO. Use signalfd() to multiplex signal handling and reading from the FIFO. This setup will also allow us to capture ctrl-alt-del and to work with a read-only rootfs. To create the FIFO, we send a SIGHUP signal to init from our init scripts." Yes, I realize signalfd() is Linux specific... aw well. Cheers, sin