我正在Linux中编写一个只能运行一个实例的Lua脚本。要在Bash中完成此操作,我将使用mkdir
创建一个锁定文件,然后在文件存在时立即从脚本返回;如果之前没有运行实例,请允许脚本继续并在完成后删除锁定文件。
在Lua中有没有办法以原子方式“检查文件是否存在或创建它(如果它不存在”)?我在Lua文档中找不到任何此类功能,但我是该语言的新手。 io.open("filename","w")
看起来不符合这些要求。如果没有mkdir
的原生模拟,有没有更好的方法在Lua中完成这种类型的脚本锁定?谢谢!
答案 0 :(得分:1)
只是转录你最后得到的答案:
if not os.execute("mkdir lockfile >/dev/null 2>&1") then
return
end
--do protected stuff
os.execute("rmdir lockfile")