Почему/var/run был перемещен в выполненный/?

Из технического обзора Сновещательной Ubuntu 11.10:

Ubuntu 11.10 мигрировала далеко от /var/run, /var/lock и /dev/shm и теперь использование /run, /run/lock и /run/shm вместо этого (соответственно).

  • Я hardcode эти пути в моих приложениях, почему это изменение внесено в Сновещательный?
  • Что я могу сделать для подавания моих заявок назад - и прямо совместимый? Есть ли лучший путь кроме проверки сначала существование /run, и затем /var/run?
66
задан 1 March 2014 в 10:32

5 ответов

Намерение состоит в том, чтобы сократить количество tmpfs файловые системы. На 11,04, там являются отдельными tmpfs файловые системы в /var/lock, /var/run и /dev/shm. Если эти каталоги были всеми в соответствии с каталогом родителя-одиночки, то только сингл tmpfs был бы необходим. Это также обеспечивает очевидное местоположение для дальнейших данных состояния во время выполнения, которые не должны сохраняться по перезагрузкам.

Если Ваше приложение не зависит от канонических путей файлов, Ваше приложение должно работать без модификации, так как старые местоположения будут symlinked к новым. Политики AppArmor являются одним случаем, который действительно зависит от реальных путей, который является, почему он был упомянут конкретно.

Следующие ссылки должны помочь объяснить объяснение:

58
ответ дан 22 November 2019 в 23:32
  1. /run новое перекрестное распределение tmpfs местоположение для устройства хранения данных файлов переходного состояния — то есть, файлы, содержащие информацию о выполнении, которая может или, возможно, не должна быть записана рано в процессе начальной загрузки и которая не требует сохранения через перезагрузки.

    Создание /run доступный каталог приносит нам шаг ближе до такой степени, когда, возможно использовать систему обычно с корневой файловой системой, смонтированной только для чтения, не требуя никаких неуклюжих обходных решений такой как aufs/unionfs оверлейные программы.

    /run замены несколько существующих местоположений описали в Стандарте Иерархии Файловой системы:

    • /var/run/run
    • /var/lock/run/lock
    • /dev/shm/run/shm [в настоящее время только Debian планирует сделать это]
    • /tmp/run/tmp [дополнительный; в настоящее время только Debian планирует предложить это]
    • /run также заменяют некоторые другие местоположения, которые использовались для переходных файлов:

    • /lib/init/rw/run

    • /dev/.*/run/*
    • /dev/shm/*/run/*
    • перезаписываемые файлы под /etc/run/*

    (таким образом, вероятно, можно ожидать, что они переместятся также).

    Source:debian выпускают цели

  2. Я был бы совет относительно создания части в Вашем программном обеспечении, где Вы устанавливаете эти каталоги в переменных, изменяете Ваш код для использования этих переменных, и затем изменить переменные на основе системы это используется на (но я держал пари, что Вы уже знали это).

36
ответ дан 22 November 2019 в 23:32

Из того, что я читал, это было исходным объяснением, данным относительно того, почему выполненный / был представлен. http://lwn.net/Articles/436012/

5
ответ дан 22 November 2019 в 23:32

Примечание: с тех пор / выполненное введение, маленькие конфигурации могли бы получить проблемы. Мой сервер Ubuntu является 256 RAM мес, и выполненный / набором по умолчанию к 49 мес.
При запуске это заполняет файловую систему до обилия.
Внесение изменений в fstab не работает к inscrease tempfs/, выполняют размер. Ни один не делает процедуры других, которые я нашел на строительном стекле.
Я нашел решение добавить в init сценарии: /etc/rc.local строка mount -t tmpfs tmpfs /run -o remount,size=85M к расширяется при запуске. (85M для моей конференции),

3
ответ дан 22 November 2019 в 23:32

Вы не должны hardcode ни один из них /run пути!

  • Использовать /var/run, потому что символьная ссылка будет существовать к /run если применимо
  • /var/lock совпадает с выше
  • Не делайте hardcode /dev/shm когда-либо, всегда используйте shm_open и т.д. (posix API)
2
ответ дан 22 November 2019 в 23:32

Другие вопросы по тегам:

Похожие вопросы: