используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию

Является ли хорошей практикой создание каталога в /run/shm (ранее /dev/shm ) и использовать его как временную директорию для приложения?

Справочная информация. Я пишу тесты черного ящика для программы, которая делает много вещей с файлами и каталогами. Для каждого теста я создаю много файлов и каталогов, а затем запускаю программу, а затем создаю ожидаемый набор файлов и каталогов, а затем запускаю diff для сравнения. Сейчас у меня около 40 тестов, и они уже набирают 2 секунды для запуска. Надеясь ускорить работу, я хочу запустить тесты в каталоге на каком-то ramdisk.

Изучая диск ram, я наткнулся на вопрос с ответом, в котором говорится, что создать каталог в /dev/shm и использовать его как временную директорию. Еще несколько исследований, однако, я наткнулся на страницу вики от debian, заявив, что это ошибка в использовании /dev/shm напрямую. Я должен использовать функции shm_* . К сожалению, функции shm_* похоже, недоступны для использования в сценарии оболочки.

Теперь я смущен. Это нормально или не использовать /run/shm (ранее /dev/shm ), как временный каталог?

  • (Как) я могу создать tmpfs как обычный (не root) пользователь?
  • mount tmpfs сохраняет текущие разрешения
  • Как заставить tmpfs использовать только физическую RAM, а не своп?
  • Как подключить tmpfs к rootfs?
  • специального устройства tmpfs не существует
  • Правильный способ отключения tmpfs on / run / shm
  • Systemd с поддержкой tmpfs | Как указать размер / tmp вручную
  • mount / var / log как tmpfs в Linux
  • One Solution collect form web for “используйте `/ run / shm` (ранее` / dev / shm`) как временную директорию”

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

    Кроме того, не путайте статью с Debian. shm_* используются для создания разделяемых сегментов памяти для Inter-Process Communication. С помощью этих функций вы можете обмениваться фрагментом памяти между двумя или несколькими процессами, чтобы они обменивались данными или сотрудничали с использованием одних и тех же данных. Процессы имеют сегмент памяти, прикрепленный в своем собственном адресном пространстве, и могут читать и писать там, как обычно. Ядро имеет дело со сложностью. Эти функции недоступны в качестве функций оболочки (и не будут очень полезны в контексте оболочки). Для получения дополнительной информации, посмотрите man 7 shm_overview . Дело в том, что никакая программа не должна управлять непосредственно псевдо-файлами, представляющими разделяемые сегменты, а вместо этого использовать соответствующие функции для создания, присоединения и удаления сегментов разделяемой памяти.

    Interesting Posts

    Как настроить EXIM4 для отправки сообщений электронной почты?

    Выбор / выделение текстовой проблемы

    найти уникальные элементы, ограниченные столбцом

    Который является стандартным / предпочтительным компилятором в F18?

    Что делать, когда некоторые ошибки происходят во время процесса apt-get обновления?

    По умолчанию пакет курсоров GNOME?

    Проблемы с файловой системой с двойной загрузкой с / Etc / Hosts и Profile

    Найдите вложенные тексты непечатаемых символов

    Как заставить Qt Creator использовать цветовую схему KDEs

    Как настроить разрешения на внешний жесткий диск, чтобы использовать его для резервного копирования с помощью rsync?

    Полная локальная копия всего дистрибутива?

    Загрузочный диск с несколькими изображениями Grub 2 загружает некоторые изображения, но перезапускается на других

    заменить строку в цикле

    Запуск облачной печати Google при загрузке

    Использование setkeycodes для отображения нажатых и отпускаемых на разные «клавиши»

    Linux и Unix - лучшая ОС в мире.