Почему параметр / var / run был перенесен в / run?

Из технического обзора Ubuntu 11.10 Oneiric:

Ubuntu 11.10 мигрировал от /var/run, /var/lock и /dev/shm и теперь использует /run, /run/lock и /run/shm вместо этого (соответственно). Я жестко задаю эти пути в своих приложениях, почему это изменение внесено в Oneiric? Что я могу сделать, чтобы сделать мои приложения обратными и передовыми? Есть ли лучший способ, кроме проверки сначала существования /run, а затем /var/run?
1
задан 1 March 2014 в 23:32

4 ответа

/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/* (так что вы, вероятно, можете ожидать, что они тоже переместятся). Источник: цели debian release. Я бы посоветовал создать часть вашего программного обеспечения, где вы устанавливаете эти каталоги в переменных, меняете свой код на использование этих переменных, а затем изменяете переменные на основе используемой системы (но я уверен, вы знали, что уже).
36
ответ дан 25 May 2018 в 19:18
  • 1
    Что вы имеете в виду подписи для файлов под /etc. Те, кто все еще упорствуют после перезагрузки, не так ли? Это просто общие файлы conf. – Evan Carroll 24 April 2012 в 21:43
  • 2
    О, я вижу. Три файла в /etc, /etc/lvm/cache/ /etc/mtab /etc/network/run/ifstate и вскоре /etc/adjtime. Полагаю, им было плохо, если бы они были в /etc для начала. – Evan Carroll 24 April 2012 в 21:45

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

5
ответ дан 25 May 2018 в 19:18

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

3
ответ дан 25 May 2018 в 19:18

Вы не должны жестко указывать любой из этих путей /run!

Используйте /var/run, потому что символическая ссылка будет установлена ​​на /run, если применимо /var/lock будет таким же, как указано выше. t hardcode /dev/shm, всегда используйте shm_open и т. д. (posix API)
2
ответ дан 25 May 2018 в 19:18

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

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