2

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

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

4

1 回答 1

1

只需转录您最终得到的答案:

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

--do protected stuff 

os.execute("rmdir lockfile")
于 2013-01-07T22:36:45.350 回答