On Tue, 24.08.10 20:14, Matt McCutchen (matt(a)mattmccutchen.net) wrote:
On Tue, 2010-08-24 at 23:31 +0200, Lennart Poettering wrote:
> On Tue, 24.08.10 16:38, Bill Nottingham (notting(a)redhat.com) wrote:
> > Lennart Poettering (mzerqung(a)0pointer.de) said:
> > > > - init shall support a mechanism to re-exec itself to not cause
> > > > inodes on shutdown; initscripts will use this method on shutdown.
> > >
> > > This is bad. While we support this just fine I think it is a really bad
> > > idea to reexec init at shutdown. What's the point of this, can you
> > > this? This smells to me as a workaround for brokeness in older init
> > > systems, and I don't see a reason why reexecing itself would be
> > > necessary for systemd.
> > If the libraries or binaries used by systemd are replaced during runtime,
> > and it is not re-executed on shutdown, the filesystem will have busy inodes
> > on shutdown. (If you'd like to take the filesystem semantics up with the
> > kernel, feel free to tilt at that windmill.)
> Hmm, so this is about files that are deleted but still mapped by init,
> and which can only be deleted when init stops referencing them, but that
> is required to remount the fs r/o? Did I get this right?
Yes, that's right.
> I am not really convinced that reexecing is the right answer for this
> problem. But well, since this already works anyway I guess this doesn't
> really matter too much.
Indeed, it's a hack, but there's no better option in sight, so I don't
see the point in complaining.
Well, what me still puzzles is this: the reexec is done asynchronously,
via signals. Shouldn't this be done synchronously at least to make
sure the daemon really is reexec'ed when we try to remount r/o?
Lennart Poettering - Red Hat, Inc.