我需要根据以下条件删除目录D的内容
已经为其编写了一个shell脚本(clearSpace.sh),但是问题在于该脚本可以同时被多个进程调用。
我希望第1步和第2步是原子的,以便获得一致的结果。
有没有一种方法,我首先在目录D上获得一个“锁”,然后执行clearSpace.sh然后给出该锁?不允许基于权限的锁定
答案 0 :(得分:0)
我们建议不要锁定存储或任何其他操作系统资源。副作用可能是毁灭性的。和无关。
操作系统的职责是同步,分配和管理资源。
资源锁定是内核级编程。最好不要去那里。操作系统脚本工具中没有锁定功能是有原因的。
您可以实现脚本访问锁定。使用lock.id文件来指示脚本正在运行。
如果存在lock.id,则禁止脚本运行。
并在脚本操作完成后删除lock.id文件。 我们建议您更改脚本阈值以更加灵活和宽容。