[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