我正在使用Flock对文本文件进行独占锁定并在其中写入内容,然后在此之前我想检查其他进程是否对该文件有任何锁定,如果有,那么我想做别的东西宁愿在队列中,这是flock中的默认动作。
所以,我想要像
这样的东西if locked; then
do something
else
(
flock -e 200
echo "In critical section"
echo text >> file.txt
echo text added to File
) 200>file.txt
bash有没有办法检查这个? 我已经研究了lsof,但我无法解决问题。
答案 0 :(得分:1)
尝试使用...
( flock -n 200 || exit 1
echo "In critical section"
echo text >> file.txt
echo text added to File
) 200>file.txt
'-n'标志将阻止阻塞,如果未获得锁定,退出代码将为'1'。