![Linux 文件层次结构 - 存储锁定文件的最佳位置是什么?](https://linux22.com/image/6721/Linux%20%E6%96%87%E4%BB%B6%E5%B1%82%E6%AC%A1%E7%BB%93%E6%9E%84%20-%20%E5%AD%98%E5%82%A8%E9%94%81%E5%AE%9A%E6%96%87%E4%BB%B6%E7%9A%84%E6%9C%80%E4%BD%B3%E4%BD%8D%E7%BD%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我想基于锁定文件(/套接字文件)同步进程。这些文件只能由其创建者用户删除。
有很多选择:
/dev/shm
/var/lock
/run/lock
/run/user/<UID>
/tmp
为此目的的最佳位置是什么?上述位置的用途是什么?
答案1
/dev/shm
: 这只不过是传统的实现共享内存概念。它是在程序之间传递数据的有效方法。一个程序将创建一个内存部分,其他进程(如果允许)可以访问该内存部分。这将导致速度加快。/run/lock
(以前/var/lock
)包含锁定文件,即指示共享设备或其他系统资源正在使用并包含使用它的进程(PID)的标识的文件;这允许其他进程正确协调对共享设备的访问。/tmp
: 是定义的临时文件的位置文件系统层次结构标准,几乎所有 Unix 和 Linux 发行版都紧随其后。由于 RAM 明显快于磁盘存储,因此您可以使用/dev/shm
而不是/tmp
为了提高性能,如果您的进程是 I/O 密集型并且大量使用临时文件。/run/user/$uid
: 创建者pam_systemd
并用于存储该用户运行进程所使用的文件。
对于你的问题,你绝对可以使用/run/lock
目录来存储你的锁定文件。
答案2
在下面创建一个目录/run/lock
并将其 chmod 为 700,然后在其中创建锁定文件。
/var/lock
/run/lock
on Linux Mint 是(在 Ubuntu、Linux Mint 17 和 CentOS 7 上)的链接
/run/user/<UID>
如果进程仅在您登录时运行,我只会将内容存储在下面。