什么是“/ run / lock”和“/ run / shm”用于?

我只是想知道在哪里以及如何/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 

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

  1. /run通常是驻留在RAM中的临时文件系统(tmpfs) (又名“ramdisk”); 它用于存储“临时”系统或状态文件,这些文件可能很关键但不需要在重新启动时保持持久性。

    • /run实际上是一项相当新的创新,并且几年前添加了一个统一的根tmpfs来替换以前创建的多个tmpfs(包括/var/lock/dev/shm )。
    • 主要位置/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 )是临时的/dev/shm可写共享内存。 严格地说 ,它旨在作为使用POSIX共享内存API的程序的存储。 它促进了所谓的进程间通信 (IPC) ,其中不同进程可以通过公共存储区共享和通信,在这种情况下,公共存储区通常是存储在“ramdisk”上的普通文件。 当然,它也可以并且已经以其他创造性方式使用;)

  4. 不要对大小感到惊慌 :重要的是,很多人在运行df -h并且知道/run是由RAM支持的,他们的宝贵记忆被这些神秘文件夹“浪费”了,这让人感到震惊。 就像Linux吃了我的RAM神话一样 ,这种信念是不正确的。

    • 显示的大小仅是可以使用的最大值
    • 它默认为物理RAM的50%
    • 实际上只使用了Used列中显示的内容,在上面的屏幕截图中总共小于1兆字节
    • 您可以使用ipcs -m命令validation所使用的实际共享内存段是否与df摘要匹配,还可以查看哪些PID正在使用它们
    • 像你的普通RAM一样, /run最终也会被你的交换所支持,所以如果你使用/run/shm进行“更快”的编译时间,请记住这一点;)