我希望基于锁文件(/ socket文件)同步进程。这些文件只能由它们的创建者用户移动。
有很多选择:
/dev/shm
/var/lock
/run/lock
/run/user/<UID>
/tmp
达到这个目的的最佳地点是什么?上面的位置是用来做什么的?
发布于 2016-04-25 11:07:56
/dev/shm:它只不过是传统共享内存概念的实现。它是在程序之间传递数据的一种有效方法。一个程序将创建一个内存部分,其他进程(如果允许的话)可以访问该部分。这将导致事情加速。/run/lock (前称/var/lock) 包含锁文件,即表示共享设备或其他系统资源正在使用并包含使用它的进程(PID)标识的文件;这允许其他进程正确地协调对共享设备的访问。/tmp:是文件系统层次标准中定义的临时文件的位置,它后面跟着几乎所有的Unix和Linux发行版。因为RAM比磁盘存储快得多,所以如果您的进程是I/O密集型的,并且广泛使用临时文件,您可以使用使用/dev/shm而不是/tmp为了提高性能。/run/user/$uid:由pam_systemd创建,用于存储运行该用户的进程所使用的文件。在回答您的问题时,您绝对可以使用/run/lock目录来存储您的锁文件。
发布于 2016-04-25 10:38:47
在/run/lock下创建一个目录,并将其设置为700,然后在其中创建锁文件。
Linux上的/var/lock是指向/run/lock的链接(在Ubuntu、Linux 17和CentOS 7上)
只有在您登录时进程才能运行时,我才会将其存储在/run/user/<UID>下。
https://unix.stackexchange.com/questions/278904
复制相似问题