当我使用集群时它立即退出而不是等待

当我使用集群时它立即退出而不是等待

-n我很长一段时间都对国旗的含义感到困惑flock(1)

基本上这个工具有很多指南,我们经常看到的是一些像flock -n 100.这里,fd 号 100 与某个锁文件关联并用于执行锁定。

今天我一直很困惑,因为我会做一些简单的测试,然后flock会立即失败退出。

-n旗帜到底有什么flock作用?我是否正确地认为将-n 100文件描述符编号 100 与某个锁定文件相关联?

答案1

我花了很长时间才发现我误解了并做出了危险的假设。我认为通过看到它调用 with-n 100来指定 fd 100,这-n是设置文件描述符编号的标志。事实并非如此。

-n用于非阻塞,此标志会导致锁定失败时立即失败。从man flock

-n, --nb, --nonblock

如果无法立即获取锁,则失败而不是等待。有关使用的退出状态,请参阅 -E 选项。

似乎如果给出一个普通数字,那么它就会被视为 fd。这是不明显的。

相关内容