Linux 文件层次结构 - 存储锁文件的最佳位置是什么?

MCH*_*MCH 8 linux fhs directory-structure lock synchronization

我想根据锁定文件(/套接字文件)同步进程。这些文件只能由其创建者用户删除。

有很多选择:

/dev/shm

/var/lock

/run/lock

/run/user/<UID>

/tmp

为此目的的最佳位置是什么?上面位置的用途是什么?

Rah*_*hul 9

  1. /dev/shm: 这不过是传统共享内存概念的实现。它是在程序之间传递数据的有效手段。一个程序将创建一个内存部分,其他进程(如果允许)可以访问该部分。这将导致事情加速。

  2. /run/lock(以前/var/lock)包含锁定文件,即表示共享设备或其他系统资源正在使用并包含使用它的进程(PID)的身份的文件;这允许其他进程正确协调对共享设备的访问。

  3. /tmp: 是Filesystem Hierarchy Standard 中定义的临时文件的位置,几乎所有 Unix 和 Linux 发行版都遵循该标准。由于 RAM 比磁盘存储快得多,如果您的进程是 I/O 密集型并广泛使用临时文件,则可以使用/dev/shm代替 来/tmp提高性能。

  4. /run/user/$uid: 由pam_systemd该用户的运行进程创建并用于存储文件。

谈到您的问题,您绝对可以使用/run/lock目录来存储您的锁定文件。

  • 请注意,`/run/` 是不可移植的 - 如果您想在 Linux 以外的其他平台上使用您的软件。UNIX 使用`/var/lock/` 或`/var/run/`。 (6认同)