Для чего используются "/run/lock" и "/run/shm"?

Я просто хочу знать, где и как /run/lock а также /run/shm может помочь наш компьютер.

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              56G   13G   41G  24% /
udev                  983M  4.0K  983M   1% /dev
tmpfs                 396M  840K  395M   1% /run
none                  5.0M  8.0K  5.0M   1% /run/lock
none                  990M  164K  990M   0% /run/shm

1 ответ

Решение

Краткий ответ: они хранят временные системные файлы, включая блокировки устройств и сегменты памяти, используемые разными процессами. Не волнуйтесь, они обычно используют часть своего "размера", показанного df

  1. /run как правило, временная файловая система (tmpfs), находящаяся в оперативной памяти (он же "ramdisk"); он предназначен для хранения "временных" файлов системы или состояния, которые могут быть критическими, но не требуют сохранения при перезагрузке.

    • /run на самом деле является довольно новым нововведением, и было добавлено пару лет назад для замены нескольких созданных ранее tmpfs (включая /var/lock а также /dev/shm) с единым корневым tmpfs.
    • Основные локации /run заменяет:
    / var / run → / run
    / var / lock → / run / lock
    / dev / shm → / run / shm [в настоящее время это планирует только Debian]
    /tmp → /run/tmp [необязательно; в настоящее время только Debian планирует предложить это] 
    
  2. /run/lock (ранее /var/lock) содержит файлы блокировки, т. е. файлы, указывающие, что используемое устройство или другой системный ресурс используется, и содержащие идентификатор процесса (PID), использующего его; это позволяет другим процессам правильно координировать доступ к общему устройству.

  3. /run/shm (ранее /dev/shm) является временной доступной для записи совместно используемой памятью. Строго говоря, он предназначен для хранения программ, использующих API общей памяти POSIX. Это облегчает то, что известно как межпроцессное взаимодействие (IPC), где различные процессы могут совместно использовать и обмениваться данными через общую область памяти, которая в этом случае обычно является обычным файлом, который хранится на "виртуальном диске". Конечно, это может быть использовано и использовалось и другими творческими способами;)

  4. Не пугайтесь размера: главное, много людей бегают df -h и зная, что /run при поддержке RAM шокированы тем, что их драгоценная память "тратится" на эти загадочные папки. Точно так же, как Linux съел мой миф о RAM, эта вера неверна.

    • Показанный размер является только максимальным, который может быть использован
    • По умолчанию 50% физической памяти
    • Только то, что показано в столбце " Используется", фактически используется, что на приведенном выше снимке экрана составляет менее 1 мегабайта.
    • Вы можете использовать ipcs -m команда, чтобы проверить, что фактические сегменты разделяемой памяти используются до df резюме, а также посмотреть, какие PID их используют
    • Как ваша обычная оперативная память, /run также в конечном итоге поддерживается вашим свопом, так что если вы используете /run/shm для "более быстрого" времени компиляции, имейте это в виду;)
Другие вопросы по тегам