[systemd-devel] Running ldconfig at boot

Lennart Poettering lennart at poettering.net
Fri May 20 15:13:11 UTC 2016


On Fri, 20.05.16 18:08, Ivan Shapovalov (intelfx at intelfx.name) wrote:

> On 2016-05-20 at 14:59 +0200, Lennart Poettering wrote:
> > On Fri, 20.05.16 14:01, Florian Weimer (fweimer at redhat.com) wrote:
> > 
> > > The default systemd configuration runs ldconfig at boot.  Why?
> > 
> > It's conditionalized via ConditionNeedsUpdate=, which means it is
> > only
> > run when /etc is older than /usr. (This is tested via checking
> > modification times of /etc/.updated and /usr), see explanation on
> > systemd.unit(5).
> > 
> > The usecase for this is to permit systems where a single /usr tree is
> > shared among multiple systems, and might be updated at any time, and
> > the changes need to be propagated to /etc on each individual
> > systems. The keyword is "stateless systems".
> > 
> > Note that normally this should not be triggered at all, since this
> > only works on systems where /usr itsel is explicitly touched after
> > each updated so that the mtime is updated. That should normally not
> > happen, except when your distro is prepared for that, and does that
> > explicitly.
> > 
> > Hence, in your case, any idea how it happens that your /usr got its
> > mtime updated?
> 
> Hi,
> 
> I just recalled I've seen many extraneous triggers of
> ConditionNeedsUpdate= on arch some time ago. It looked like the mtime
> of /usr has nonzero nanoseconds value, but mtime of /etc/.updated seems
> to be clamped to whole seconds. I didn't look at the logic though...

We had trouble with that in the past. This is really stupid ext234
behaviour: if you create small file systems it will silently degrade
mtime accuracy to 1s, and there's no way to figure out the accuracy of
a mtime on a specific fs...

See 329c542585cd92cb905990e3bf59eda16fd88cfb about this...

Are you saying that fix doesn#t work and is not sufficient?

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list