Intereting Posts
Как использовать getopt в командной строке bash только с длинными опциями? Используйте команду sed для поиска текстового файла для записей 10000 и под как передать несколько команд в sqlite3 в одной команде оболочки liner Можно ли добавить функцию внутри функции? mutt отправлять почту из командной строки, с заголовками внутри текстового файла Имеет ли gsettings интерфейс GUI? нацеливание на конкретный блок с e2fsck для сокращения ожидания CentOS 7: Странные каталоги, появляющиеся в / Создание пакета Debian, который не удаляет каталоги после его очистки find: чернослив не игнорирует указанный путь Узнайте, какие модули связаны с устройством USB? Chrome игнорирует инвертированную прокрутку Запуск входа в Telnet очень медленный на статическом IP-адресе, возможно ли rDNS? Включение привязок клавиш Switches Viewport Switcher Что именно происходит, когда я запускаю файл в своей оболочке?

Когда монтировать / tmp (и другие временные каталоги)

Когда настало время монтировать /tmp (на Debian)? Для /home я бы не чувствовал себя плохо, просто чтобы echo "/dev/foo /home type defaults 0 0" >>/etc/fstab – но могу ли я быть уверенным, что /tmp не используется никакими программами при применении fstab ?


Я использую либо Ubuntu, либо простой Debian или Debian / Grml – это не будет иметь большого значения.

То, что я прочитал до сих пор:

Предпосылки: я собираюсь использовать некоторый колорит Debian на моем нетбуке (без HD, 8 ГБ SSD, 1 ГБ ОЗУ – удвоит оперативную память при необходимости). Я не помню память. Некоторые задачи слишком медленные (создание средних программ C или компиляция PDF из TeX берут 5+ сеансов), но они не теряют времени на tmpfs. Я хочу установить tmpfs на / tmp, чтобы ускорить их.

Это явно не указано политикой Debian, но Debian поддерживает создание /tmp отдельной файловой системы (а также /home , /var и /usr ). Это традиционно поддерживается системами unix. И я могу подтвердить, что создание /tmp файловой системы tmpfs и установка ее автоматически через /etc/fstab , работает на Debian.

Есть некоторые трудности при переходе на /tmp на tmpfs в живой системе из-за файлов, которые уже находятся в /tmp и не могут быть скопированы. Но ни один файл в /tmp не будет сохранен во время перезагрузки. Безопасно монтировать другую файловую систему в /tmp во время монтирования разделов в /etc/fstab .

В общем, вы должны установить telinit 1 перед установкой поверх текущего каталога tmp. В однопользовательском режиме не должно быть файлов в / tmp, необходимых для работы системы, поэтому вы должны иметь возможность очистить каталог, отключить его (если это отдельный раздел), а затем смонтировать что-то еще на этом монтировании перед возвратом в многопользовательский режим.

Чтобы / tmp не использовался:

  1. Когда / tmp – смонтированная файловая система, fuser -m /tmp проверяет, что в настоящее время ни один процесс не использует точку монтирования, прежде чем изменять ее.
  2. Когда / tmp не является отдельной файловой системой, find /tmp -print0 | xargs -0 fuser find /tmp -print0 | xargs -0 fuser даст вам аналогичные результаты.

Вы также можете рассмотреть возможность установки отдельной файловой системы tmpfs и экспорта TMPDIR (или аналогичных переменных среды вашего компилятора), чтобы использовать его. Это дало бы вам преимущество в области царапин tmpfs, не требуя общесистемных изменений.

tmp не следует использовать для постоянных данных

LSB (стандартная база Linux) определяет в FHS (FilesystemHierarchyStandard) 2.3, что

«Программы не должны предполагать, что любые файлы или каталоги в / tmp сохраняются между вызовами программы».

Как отметил Гилл, это могут быть сокеты для запуска программ. Большинство из этих программ являются возможными сетевыми услугами, расположенными на уровне 2 или 3 уровня.

Чтобы получить подробную информацию о вашей системе:

cd /etc/init.d ; grep tmp * cd /etc/init.d ; grep tmp * должен показывать использование tmp во время загрузки.

Сделайте дополнительный grep mktemp * для поиска более высокого уровня использования tmp.

Каждая программа должна использовать tmp только очень коротко.

На вашей рабочей системе сделайте fuser /tmp/* ; fuser /tmp/*/* fuser /tmp/* ; fuser /tmp/*/* и т. д., чтобы проверить запуск запущенных процессов tmp.

Кроме того, файл / etc / fstab должен быть стандартным местом для установки файловых систем – почему вы не должны добавлять его с помощью «1 2»?

/etc/fstab используется только тогда, когда что-то запускается.

Три раза, о которых я могу думать:

  • во время загрузки системы (в системе Debian это происходит во время загрузки через /etc/rcS.d/S10mountall.sh )
  • когда суперпользователь запускает mount -a
  • когда суперпользователь запускает mount <mount point mentioned in /etc/fstab>

Если вы говорите, что хотите создать новые tmpfs для программ, которые собираетесь запускать, но без перезагрузки, я думаю, вам придется подключить их где-то, кроме /tmp чтобы вы не нарушали уже запущенные программы ,

Почему не просто

 mkdir /tmpnew mount -t tmpfs tmpfs /tmpnew TMPDIR=/tmpnew make...