[devel] FHS violations: /run

Leonid Krivoshein klark.devel на gmail.com
Ср Май 1 17:18:12 MSK 2019


28.03.2019 18:51, Alexey V. Vissarionov пишет:
> On 2019-03-28 17:56:07 +0300, Alexey Shabalin wrote:
>
>   >>> А вот до перезагрузки, и до filetrigger, сервис могут
>   >>> попытаться стартовать, а нужных директорий никто не создал.
>   >> Так может быть создавать их при старте сервиса ?
>   > Если их создавать в ExecStartPre=/bin/mkdir /run/foo, то
>   > теряется весь(почти) смысл tmpfiles.
>
> Он вообще хоть когда-нибудь был, этот смысл? Я бы на какой-то
> внешний функционал закладываться не стал...
>
>   > Ещё и sysv скрипты тоже править надо. И так по всем пакетам.
>
> Да, надо. Как минимум в тех пакетах, мейнтейнеры которых хоть
> немного думают об админах, которым с этим хозяйством работать.
>
>   > Давайте просто приведем к единому поведению политики для
>   > /var/run и /run, для /var/lock и /run/lock.
>
> В моей практике хорошо себя показал такой вариант:
>
> rm -rf /var/lock /var/run /var/tmp /run /tmp
> mkdir -p /var/tmp
> mount -t tmpfs tmpfs /var/tmp
> mkdir -p /var/tmp/run/lock /var/tmp/.private
> ln -s tmp/run /var/run
> ln -s var/run /run
> ln -s run/lock /var/lock
> ln -s var/tmp /tmp
> chmod 1777 /tmp/.private
>
> Он до кучи еще и соответствует что старому стандарту, что новому.
>

Если говорить о глобальной политике, в Debian Wheezy для решения 
проблемы доступности /var/run на ранних этапах запуска, а также для 
нормальной работы с read-only корнем были внесены такие изменения:

/dev/.* --> /run/*
/dev/shm --> /run/shm
/dev/shm/* --> /run/*
/etc/* (writeable files) --> /run/*
/lib/init/rw --> /run
/var/lock --> /run/lock
/var/run --> /run
/tmp --> /run/tmp

Ранее прибегали ко всяким хитростям типа /dev/.udev, /dev/.mdadm, итп. 
По уму содержимое tmpfs не должно быть частью каких-либо пакетов.


-- 
Best regards,
Leonid Krivoshein.



Подробная информация о списке рассылки Devel