防止多次执行Lua脚本

时间:2013-01-07 21:12:41

标签: lua

我正在Linux中编写一个只能运行一个实例的Lua脚本。要在Bash中完成此操作,我将使用mkdir创建一个锁定文件,然后在文件存在时立即从脚本返回;如果之前没有运行实例,请允许脚本继续并在完成后删除锁定文件。

在Lua中有没有办法以原子方式“检查文件是否存在或创建它(如果它不存在”)?我在Lua文档中找不到任何此类功能,但我是该语言的新手。 io.open("filename","w")看起来不符合这些要求。如果没有mkdir的原生模拟,有没有更好的方法在Lua中完成这种类型的脚本锁定?谢谢!

1 个答案:

答案 0 :(得分:1)

只是转录你最后得到的答案:

if not os.execute("mkdir lockfile >/dev/null 2>&1") then 
  return 
end 

--do protected stuff 

os.execute("rmdir lockfile")