关于那个线程: bash flock:如果无法获取锁定则退出
如果有人能向我解释'200'代表什么,我将不胜感激.
我已经阅读了关于flock的内容,如果要指定文件描述符,似乎有200个,但这个数字有什么好处呢?
Bri*_*ell 44
没有什么特别的数字200.它恰好是flock命令手册页中使用的例子; 它碰巧是一个很大的数字,所以它不太可能与您在脚本中打开的任何其他文件的文件描述符冲突.
在您的评论中,您询问:
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
Run Code Online (Sandbox Code Playgroud)
括号()创建一个子shell; 一个与父进程分开的新进程.在200>/tmp/blah.lockfile这一进程中开拓事业/tmp/blah.lockfile的写作,文件描述符200括号内的命令是外壳内执行.
flock -e 200获取文件描述符200指向的文件的独占锁.独占锁意味着试图获取该文件锁的任何其他人(独占或共享)将阻止(等待)直到该锁已被放弃或失败如果他们达到超时或要求不阻止.因此,在子shell的主体的其余部分(echo和sleep命令)中,锁将由该子shell保持,并且没有其他人可以获得该锁.子shell完成后,文件将被关闭并放弃锁定.
| 归档时间: |
|
| 查看次数: |
17921 次 |
| 最近记录: |