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

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

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

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

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

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 . Дело в том, что никакая программа не должна управлять непосредственно псевдо-файлами, представляющими разделяемые сегменты, а вместо этого использовать соответствующие функции для создания, присоединения и удаления сегментов разделяемой памяти.

  • изменить размер devtmpfs / dev /
  • Что задает размер tmpfs? Что происходит, когда оно полно?
  • Как я могу проверить, установлен ли каталог / tmp на моей системе CentOS 5.x на tmpfs?
  • mount tmpfs сохраняет текущие разрешения
  • tmpfs и vm.swappiness
  • Разница между / run и / var / run
  • fstab не поддерживает режим чтения
  • Ограничьте / proc / mounts, чтобы избежать воздействия / run / user /
  • Насколько безопасно увеличить tmpfs до большей, чем физической памяти?
  • Это хорошая идея поместить ~ / .cache в tmpfs?
  • Какие части файловой системы для tmpfs / squashfs / sparseimage для встроенной системы USB
  • Interesting Posts

    Как подключиться к сети Wi-Fi в Arch Linux?

    Запрашивать rsync для передачи файлов без подключения к удаленному серверу rsync?

    Можно ли отключить нажатие на клик в конфигурации X-сервера без синхронизации?

    Какие хэш-алгоритмы я могу использовать в записи passwd / user-password preseed?

    Как создать образ USB с таблицей разделов?

    Sudo выполнить сценарий оболочки по-разному по сравнению с прямым пользователем выполнить его

    FTP прямо в каталог, а не делать его относительно домашней директории пользователей FTP?

    Может ли ядро ​​гостевой виртуальной машины KVM быть более поздним, чем его хост? (Когда аппаратная пересылка действует)

    автозапуск программы linux при запуске от пользователя без полномочий root в centOS 6 64bit

    Есть ли пусковая установка, в которой есть вкладка?

    Маршрутизация портов / DNS для отдельной программы

    Стандартный ввод данных Bash перед чтением

    Как настроить заголовки электронной почты с помощью / usr / bin / mail?

    Измените ключ, который показывает предыдущие командные строки в ksh

    Мастер марионеток не служит для показа / чтения

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