我正在尝试为守护进程实现基于文件的独占锁,它适用于每个文件(无线程间或进程内锁定)。我知道这是一个常见问题,并且已经建立了一些约定,但我无法正确解决或完全理解问题。
我查看了其他答案,目前我使用的答案与此非常接近:https://stackoverflow.com/a/1643134 , IE。使用 flock
在程序启动时创建咨询锁。但是,这并不能满足我的要求;对 flock
的调用总是成功的。
我不确定 my code是不正确的,或者如果我误解了,flock
并不意味着跨不同的进程工作(?)。
这是 C++ (11) 代码,在 Linux 2.6.32 (CentOS VM) 和 3.12.9 (Arch) 上测试,都是 ext4 文件系统。
最佳答案
我在 acquire
例程结束时关闭了文件描述符。糟糕。
关于linux - 独占文件锁(PID文件实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700837/