【问题标题】:Exclusive file lock (PID file implementation)独占文件锁(PID文件实现)
【发布时间】:2014-03-27 22:46:59
【问题描述】:

我正在尝试为守护进程实现基于文件的独占锁,它适用于每个文件(没有线程间或进程内锁定)。我知道这是一个常见问题,并且已经建立了一些约定,但我无法正确解决问题,或者无法完全理解问题。

我查看了其他答案,目前我正在使用与此非常接近的东西:https://stackoverflow.com/a/1643134,即。使用flock 在程序启动时创建一个咨询锁。但是,这不符合我的要求;对flock 的调用总是成功。

我不确定my code 是否不正确,或者我是否误解了,flock 并不意味着可以跨单独的进程工作 (?)。

这是 C++ (11) 代码,在 Linux 2.6.32 (CentOS VM) 和 3.12.9 (Arch) 上测试过,都是 ext4 文件系统。

【问题讨论】:

  • 可能某些文件系统不支持咨询锁定,因此总是返回成功。
  • 我添加了FS和内核。
  • 看来 ext4 在这方面不应该是不可靠的,因为它的广泛使用?

标签: linux posix file-locking


【解决方案1】:

我在acquire 例程结束时关闭了文件描述符。哎呀。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2013-03-12
    • 2012-01-30
    • 1970-01-01
    • 2011-01-14
    • 2013-03-15
    • 1970-01-01
    相关资源
    最近更新 更多