“/run/lock”和“/run/shm”有什么用?

rɑː*_*dʒɑ 71 partitioning system mount

我只是想知道在哪里以及如何/run/lock/run/shm能够帮助我们的PC。

$ 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
Run Code Online (Sandbox Code Playgroud)

ish*_*ish 101

简短回答:它们存储临时系统文件,包括设备锁和不同进程之间共享的内存段。别担心,他们通常使用他们显示的“大小”的一小部分df

  1. /run通常,是驻留在 RAM(又名“ramdisk”)中的临时文件系统 (tmpfs );它意味着用于存储可能是至关重要的,但“临时”系统或状态文件要求在重新启动后的持久性。

    • /run实际上是一个相当新的创新,并且在几年前被添加以用单个统一的根 tmpfs替换过去创建的多个 tmpfs(包括/var/lock/dev/shm)。
    • 主要位置/run 替换为:
    /var/运行 ? /跑
    /var/锁 ? /运行/锁定
    /dev/shm ? /run/shm [目前只有 Debian 计划这样做]
    /tmp ? /run/tmp [可选;目前只有 Debian 计划提供这个]
    
  2. /run/lock(以前/var/lock包含锁定文件,即表示共享设备或其他系统资源正在使用并包含使用它的进程(PID)的身份的文件;这允许其他进程正确协调对共享设备的访问。

  3. /run/shm(以前/dev/shm)是临时的世界可写共享内存。严格来说,它旨在作为使用 POSIX 共享内存 API 的程序的存储。它促进了所谓的进程间通信 (IPC),其中不同的进程可以通过公共内存区域共享和通信,在这种情况下,通常是存储在“ramdisk”上的普通文件。当然,它也可以并且已经以其他创造性的方式使用;)

  4. 不要担心大小:重要的是,许多运行df -h并知道/run由 RAM 支持的人都对他们宝贵的内存被这些神秘的文件夹“浪费”感到震惊。就像Linux 吞噬了我的 RAM 神话一样,这种信念是不正确的。

    • 显示的大小只是可以使用的最大值
    • 默认为物理内存的 50%
    • 只有Used列中显示的实际在使用中,在上面的屏幕截图中总共不到1兆字节
    • 您可以使用该ipcs -m命令来验证使用的实际共享内存段是否与df摘要匹配,还可以查看哪些 PID 正在使用它们
    • 就像您的常规 RAM 一样,/run最终也由您的交换提供支持,因此如果您使用的/run/shm是“更快”的编译时间,请记住这一点;)