[HEADS-UP] Moving /var/run and /var/lock to tmpfs in Rawhide

Lennart Poettering mzerqung at 0pointer.de
Tue Nov 23 23:01:45 UTC 2010

On Tue, 23.11.10 23:02, Till Maas (opensource at till.name) wrote:

> The release notes section contains this:
> | /var/run and /var/lock are now mounted from tmpfs, and hence emptied on
> | reboot. Applications must ensure to recreate their own files/dirs on
> | startup, and cannot rely that doing this at package installtion will
> | suffice
> But this does not mention tmpfiles.d which you wrote can be used instead
> of creating files or dirs on startup.

Added a comment about this now.

> >  c) YOU need to edit your .spec file and place a %ghost where
> >  appropriate.
> > 
> >  c) YOU need to test if you package still works, and if necessary file
> >  AVC bugs, add an /etc/tmpfiles.d drop-in file to your program, or patch
> >  it so that it is able to recreate these directories beneath /var/run on
> >  its own.
> Imho there should be a packaging guideline to make it clear what needs
> to be done in which cases. E.g. when to %ghost files and when not.

I guess extending the guidelines with a line or two about this is a good idea.

> > <snip>
> > d /var/run/screens 1777 root root 10d
> > d /var/run/uscreens 0755 root root 10d12h
> > </snip>
> > 
> > This encodes that two directories are created under the listed names, with
> > automatic clean up after 10 days resp. 10 days and 12h. 
> Removing /var/run/screens after 10 days sounds wrong. Even removing the
> sockets inside /var/run/screens sounds wrong. Is this just a bad example
> am I not understanding the age means.

Sorry, it's not necessarily a great example.

The aging stuff is mostly useful for things like /tmp itself.

> > For more details consult the man page:
> > 
> > http://0pointer.de/public/systemd-man/tmpfiles.d.html
> Here it says:
> | If a file or directory is older than the current time minus the age
> | field it is deleted.
> And when are the files and dirs created? Only when the system is
> booted?


> But then after installing an package that requires files to be created
> by tmpfiles.d the system needs to be rebooted before it can be used. Or
> will rpm call something that parses the appropriate tmpfiles.d file when
> the package is installed / updated?

Hmm, it has been suggested that we should make it possible to create
these dirs in the .spec files by invoking the systemd-tmpfiles tool
directly from the scriptlets. I guess we should add a nice interface for
that. In the meantime it should be sufficient to simply place th right
"mkdir -p -m ..." in the scriptlet. Of course it would be desirable if
we have a single place where the dirs to create are encoded.


Lennart Poettering - Red Hat, Inc.

More information about the devel mailing list