当前位置: 代码迷 >> Solaris >> 用mkdir兑现互斥操作可行吗
  详细解决方案

用mkdir兑现互斥操作可行吗

热度:3386   发布时间:2013-02-26 00:00:00.0
用mkdir实现互斥操作可行吗?
看到一些资料说,unix下面的mkdir是原子的,也就是互斥的。
所以想用这个命令来解决shell程序的多次启动问题。
具体思路如下,

mkdir /home/test/temp
if[ $? -gt 0 ]; then
成功
else
已经启动了失败
fi

如果同时启动shell程序,只有一个能mkdir成功
这种思路有什么问题吗?多谢大家探讨啊。

------解决方案--------------------------------------------------------
不确定mkdir是原子的
从网上搜了下
http://bbs.chinaunix.net/archiver/tid-690239-page-4
------解决方案--------------------------------------------------------
trap "rmdir /tmp/lock" 0
方便一些吧,后续shell可以随时终止
而不需要在每个exit之前,都显式调用一下rmdir
------解决方案--------------------------------------------------------
flock锁是基于文件的,会随进程的终止而自动释放
  相关解决方案