小编yog*_*212的帖子

rm可以用于同步锁定文件检查吗?

我一直在尝试改进一些外壳代码,以实现破坏的锁定机制。

我的想法是通过在文件上调用rm来仅允许一个调用者完成同步。

PIDFILE=/tmp/test.pid

flag=$PIDFILE.flag
touch $flag

if [ -f $PIDFILE ]; then
  ps | grep -qE '^\s*'$(cat $PIDFILE) && exit
fi

echo $$ > $PIDFILE
# this should succeed only for one process
rm $flag || exit
echo $$ > $PIDFILE
Run Code Online (Sandbox Code Playgroud)

我已经进行了一些并发呼叫,并为此投入了很多精力,但并没有遇到失败。

但这实际上是安全的吗?

linux shell synchronization race-condition

4
推荐指数
1
解决办法
32
查看次数

标签 统计

linux ×1

race-condition ×1

shell ×1

synchronization ×1