Ephemeral /var/run and creating port-specific subdir at service startup time

Roger Leigh rleigh at codelibre.net
Wed Aug 31 23:24:57 UTC 2016


On 01/09/16 00:12, Mark Martinec wrote:
> I prefer to have a /var/run file system reside on a tmpfs
> as its contents is small and ephemeral in its nature (like
> pid files, lock files, sockets), need not be preserved across
> reboots, and should not have to depend on any physical disk.
>
> The problem is that some programs/services/ports like to create
> their own subdirectory under /var/run. This works fine if such
> subdirectory is created (when missing) by their rc.d script,
> such as salt, dbus, jenkins, clamav-clamd, isc-dhcpd, kibana.
>
> Unfortunately there are other ports which create a subdirectory
> under /var/run at the installation time (pkg install). In this
> case their subdirectory is missing on a reboot when /var/run
> is re-created afresh, and they fail to start.
>
> So my question is: are such ports (like influxdb, grafana3)
> which do not create their subdirectory at a startup time
> in error and a bug report is warranted, or am I wrong in
> expecting that /var/run may be ephemeral and is such a setup
> (as is common in Linux) unsupported?

I can't speak for FreeBSD policies, but as the person who implemented 
/run on Debian GNU/Linux for sysvinit (/var/run on tmpfs essentially), 
we had to audit every package and ensure that all packages created the 
directories they needed if they weren't present.  We retained the 
cleaning of /var/run on boot to ensure a clean slate, so having it on 
tmpfs was never mandatory, but if you did then it would just work. 
However, we did have boot-time cleaning of /var/run for a while before 
we introduced the tmpfs, so I can't recall doing anything but a handful 
of minor tweaks.

Doing the same for FreeBSD wouldn't be too hard if you can automatically 
scan the ports tree or build package contents to identify and fix any 
packages which are providing static files.


Regards,
Roger


More information about the freebsd-stable mailing list