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

Я знаю, что видел "шагомеры мыши" в прошлом, которое сделало бы то, что Вы хотите.

Единственным примером, который я могу найти прямо сейчас, является "kdetoys-mousepedometer", и затем только в некоторых архивах об/мин.

1
13.04.2017, 15:36
4 ответа

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

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

2
27.01.2020, 23:21
  • 1
    Делание / домой,/tmp,/var/tmp отдельная файловая система является официальной политикой NSA. Я не знаю о / var и/usr. Почему им рекомендуют? трафик LAN –  emory 22.04.2012, 05:12
  • 2
    я всегда находил переход /tmp очень легкий. Я обычно делаю mv /tmp /tmp.old; mkdir -m 0 /tmp; mount /tmp; ln -s /tmp.old/* /tmp после добавления упомянутой строки к fstab. Затем открытые файлы в старом /tmp должны быть найдены в /tmp.old через и тем не менее можно получить доступ /tmp. Затем я проверяю, используются ли они еще, и после следующей перезагрузки, я удаляю /tmp.old. –  glglgl 22.04.2012, 12:09

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

Гарантировать/tmp не используется:

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

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

1
27.01.2020, 23:21

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

LSB (Основа Стандарта Linux) определяет в FHS (FilesystemHierarchyStandard) 2.3 это

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

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

Получить информацию о детали для Вашей системы:

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

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

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

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

Кроме этого/etc/fstab должен быть стандартным местом для монтирования файловых систем - почему Вы не должны добавлять его с "1 2"?

1
27.01.2020, 23:21
  • 1
    Ваше первое предложение является неправильным. На настольной машине существует файл в tmp это находится в постоянном употреблении: /tmp/.X11-unix/X0, сокет, что все X использования программ для передачи с сервером. –  Gilles 'SO- stop being evil' 22.04.2012, 02:29
  • 2
    @Gilles: С тех пор в моем случае, все произойдет, прежде X играет роль, это должно быть хорошо. –  Mark 22.04.2012, 07:56
  • 3
    @Nils: Спасибо за эту дешевую и ценную подсказку! Хотя я действительно читал некоторый материал об или под /etc/init.d, использование grep действительно enlighting! –  Mark 22.04.2012, 07:57
  • 4
    @Nils Ваше решение, что это - очень плохой стиль, не совместно используется авторами X-серверов или другими программами, которые вставляют сокеты /tmp. Это мнение это регистрирует в /tmp являются недолгими, не общий. Ключевые характеристики /tmp это, файлы там, как ожидают, не переживут перезагрузку. –  Gilles 'SO- stop being evil' 23.04.2012, 00:23
  • 5
    @Nils Это не противоречит обычной практике вставления сокетов /tmp всегда. Эти сокеты, как предполагается, не переживают экземпляр сервера. Это не предотвращает сервер (и следовательно сокет) от оставления в течение долгого времени — для настольной машины, обычно, с нескольких секунд после начальной загрузки к нескольким секундам перед завершением работы. –  Gilles 'SO- stop being evil' 24.04.2012, 23:33

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

Эти три раза я могу думать:

  • во время начальной загрузки системы (в системе 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...
0
27.01.2020, 23:21

Теги

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