[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: /run and needing a --rundir for configure
From: |
Eric Blake |
Subject: |
Re: /run and needing a --rundir for configure |
Date: |
Mon, 09 Sep 2013 07:07:37 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
On 09/09/2013 06:58 AM, Paul Smith wrote:
> On Mon, 2013-09-09 at 06:36 -0600, Eric Blake wrote:
>> As I see it, the key difference is that MOST of /var must persist across
>> reboots, but /var/run is a special subdirectory that need persist only
>> as long as the process is running (pid files are a perfect example of
>> common /var/run contents). With the recent addition of systemd into the
>> GNU/Linux world, distros have moved to naming the two directories /var
>> and /run, rather than /var and /var/run, so that there is no instance of
>> a top-level directory whose subdirectories have different lifetimes on
>> their contents.
>
> In my opinion the key differentiator for /var/run (/run) is that it is
> guaranteed to be cleaned on system reboot, and should not be cleaned
> during the lifetime of the system. /tmp, on the other hand, may or may
> not be cleaned ever.
Indeed - sticking a pid file in /tmp is dangerous, if /tmp can be
periodically cleaned; while /var is guaranteed not to be cleaned
externally except on reboot.
>
>> While 'make install' will generally never stick files into /run (as such
>> files make no sense until the program is running), it is common to have
>> programs that stick empty subdirectories under /run (so that they are
>> labeled correctly during distribution, rather than having to create and
>> relabel them on the fly). Hence having --rundir available as an option
>> to specify /run/pkg via $(rundir)/pkg (rather than hard-coding to
>> $(localstate)/run/pkg) is desirable for installation of these directories.
>
> I'm not sure this can be relied upon. Some distributions, such as
> Debian (I believe) and Ubuntu (I'm sure) use a tmpfs for /run. This
> means that not only will all files be deleted on reboot (as Red Hat
> does), but everything including subdirectories will be deleted. So,
> adding subdirectories here as part of an install step is not reliable.
>
> Admittedly this is very frustrating because /run is owned by root/root
> and 755, which means only processes started as root (or setuid) can make
> use of /run reliably. I've modified my init scripts to create and chown
> subdirectories but this is still not ideal since I'd like to be able to
> start services even when I'm not root (if I am logged in as the
> appropriate user account).
>
> More thought needs to go into this aspect of /run IMO.
Indeed, since systemd likes to use /var as a tmpfs file system, there
are other methods used to inform systemd which subdirectories a package
would like created each time the tmpfs is instantiated. But that's an
orthogonal issue for distros - one that the autotools need not solve.
>
> In any event, having an option in autoconf is appropriate so that the
> program itself can be configured to create and/or look for run files in
> the proper place, even if the installer doesn't need it.
Correct - see also gnulib's "configmake.h" file, which allows easy
conversion from autoconf's configure --FOOdir options into a C header
for easy reference to the locations specified at configure time. Being
able to refer to a C macro that expands to "/run" (or to "/var/run", or
whatever else was specified for --rundir) is much nicer than hard-coding it.
Again, this proposal is useful even if it doesn't completely solve the
issues that a distro faces by using tmpfs - it is an incremental
improvement that is worthwhile in its own right.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: /run and needing a --rundir for configure, (continued)
- Re: /run and needing a --rundir for configure, Eric Blake, 2013/09/05
- Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/05
- Re: /run and needing a --rundir for configure, Eric Blake, 2013/09/05
- Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/08
- Re: /run and needing a --rundir for configure, Paolo Bonzini, 2013/09/09
- Re: /run and needing a --rundir for configure, Eric Blake, 2013/09/09
- Re: /run and needing a --rundir for configure, Paul Smith, 2013/09/09
- Re: /run and needing a --rundir for configure,
Eric Blake <=
- Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/09
- Re: /run and needing a --rundir for configure, Eric Blake, 2013/09/09
- Re: /run and needing a --rundir for configure, Paolo Bonzini, 2013/09/10
- Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/10
- Re: /run and needing a --rundir for configure, Doug Goldstein, 2013/09/10
- Re: /run and needing a --rundir for configure, Paolo Bonzini, 2013/09/11
- Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/13
- Re: /run and needing a --rundir for configure, Paolo Bonzini, 2013/09/14
Re: /run and needing a --rundir for configure, Karl Berry, 2013/09/11