Answers:
手册页flock(2)
已经过时了很长时间,但是此后更新为(强调我的):
从Linux 2.6.12开始, NFS客户端通过将flock()锁模拟为整个文件的字节范围锁来支持它们。这意味着fcntl(2)和flock()锁确实通过NFS相互交互。从Linux 2.6.37开始,内核支持兼容模式,该模式允许将flock()锁(以及fcntl(2)字节区域锁)视为本地模式。请参阅nfs(5)中有关local_lock选项的讨论。
这是从官方手册页网站http://man7.org/linux/man-pages/man2/flock.2.html上获得的,其中显示了4.00版手册中的新版本。
Linux 2.6.12于2005年发布。
这本来是对janneb答案的评论,但当时我没有声誉。此文档更新发生在2014年:http://git.kernel.org/cgit/docs/man-pages/man-pages.git/commit/man2/flock.2?id = e449654fdb3f19aafc569df47d12bffdf6276236
flock()
在Linux NFS(包括PHP)上可以正常工作。我们对其进行了广泛使用,并对其进行了全面测试,以验证其是否可以正常工作。检查是否在客户端和服务器上都在运行所有必要的服务。查找“ portmapper”和“ rpc.statd”。如果它们没有运行,则需要找出哪个init脚本在发行版上启动它们。在基于Debian的发行版中,它是“ /etc/init.d/portmap
”和“ /etc/init.d/nfs-common
”。
从客户端运行“ rpcinfo -u $NFSSERVER status
”,看看是否收到响应。在我的设置中,结果是“程序100024版本1准备就绪并正在等待”。
哦,还要记住,在某些情况下,如果客户端和服务器之间都没有可靠的主机名条目,则NFS和statd可能会感到不高兴。仔细检查/etc/hosts
两台机器。
只是想对自己回答。该解决方案可以在这里找到:http : //us3.php.net/manual/en/function.flock.php#82521