![“/run/lock”和“/run/shm”有什么用?](https://linux22.com/image/821811/%E2%80%9C%2Frun%2Flock%E2%80%9D%E5%92%8C%E2%80%9C%2Frun%2Fshm%E2%80%9D%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8%EF%BC%9F.png)
我只是想知道在哪里以及如何/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
答案1
简短回答:它们存储临时系统文件,包括设备锁和不同进程之间共享的内存段。不用担心,它们通常使用分数其“大小”
df
/run
一般来说,是驻留在 RAM 中的临时文件系统 (tmpfs)(又名“ramdisk”);它用于存储“临时”系统或状态文件,这些文件可能很关键,但不要需要在重启后保持持久性。/run
实际上是一项相当新的创新,是在几年前添加的,用来用单个统一的根 tmpfs取代过去创建的多个 tmpfs(包括/var/lock
和)。/dev/shm
- 主要地点
/run
替换为:
/var/运行 → /运行 /var/锁 → /运行/锁 /dev/shm → /run/shm [目前只有 Debian 计划这样做] /tmp → /run/tmp [可选;目前只有 Debian 计划提供此功能]
/run/lock
(以前/var/lock
)包含锁文件,即指示共享设备或其他系统资源正在使用中并包含使用它的进程的标识(PID)的文件;这允许其他进程正确协调对共享设备的访问。/run/shm
(以前/dev/shm
) 是临时的、全世界可写的共享内存。严格来讲,它旨在作为使用 POSIX 共享内存 API 的程序的存储。它促进了所谓的进程间通信 (国际专利分类),其中不同的进程可以通过一个公共内存区域共享和通信,在这种情况下,该内存区域通常是存储在“ramdisk”上的普通文件。当然,它也可以并且已经以其他创造性的方式使用 ;)不要对尺寸感到惊慌:重要的是,许多运行
df -h
并知道/run
由 RAM 支持的人都震惊于他们宝贵的内存被这些神秘文件夹“浪费”。就像Linux 吞噬了我的 RAM 神话但这种看法是错误的。- 所示尺寸仅为最大限度可以使用
- 默认为物理 RAM 的 50%
- 只显示用过的列实际正在使用中,在上面的屏幕截图中,总计不到 1 兆字节
- 你可以使用该
ipcs -m
命令来验证实际使用的共享内存段是否与摘要匹配df
,还可以查看哪些 PID 正在使用它们 - 就像您的常规 RAM 一样,
/run
最终也会由您的交换支持,因此如果您使用/run/shm
“更快”的编译时间,请记住这一点;)