Modern Linux distributions include a /run directory as a temporary filesystem (tmpfs) which stores volatile runtime data, following the FHS version 3.0. According to the FHS version 2.3, such data were stored in /var/run but this was a problem in some cases because this directory isn’t always available at early boot. As a result, these programs have had to resort to trickery, such as using /dev/.udev, /dev/.mdadm, /dev/.systemd or /dev/.mount directories, even though the device directory isn’t intended for such data. Among other advantages, this makes the system easier to use normally with the root filesystem mounted read-only.
# df -h Filesystem Size Used Avail Use% Mounted on ...... tmpfs 431M 7.1M 424M 2% /run ...... # ls -lt /var/run lrwxrwxrwx 1 root root 4 Nov 5 21:14 /var/run -> /run