防止bash(或其他东西)脚本并行执行的常用方法是在启动时创建一个锁目录,在完成时删除它,并在启动时检查它但是,可能会出现脚本被异常终止或终止的情况,从而使锁成为永久性的。
解决这个问题的一种方法是设置一个阈值,任何锁都被认为是过时的,如果创建时间太长,应该忽略它然而,我的bash脚本调用其他程序,并且可能被破坏很长一段时间(而且,也很难分割成多个小作品),使得这种方法不可用……
有办法解决这个问题吗或者有另一种方法可以从并行执行中锁定脚本?
最佳答案
我的第一个想法是编写足够的C来使用Linux调用,比如flock(),它在进程结束时自动释放为了刷新我的记忆,我在http://linux.die.net/man/1/flock的“flock-managelocksfromsshell脚本”上找到了相关信息——如果您有权访问它,我会使用它如果不是的话,像这样的东西可能很容易实现。
关于algorithm - 如何绝对防止并行执行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19461620/