防止 Lua 脚本多次执行

我正在Linux上编写一段Lua脚本,只能运行一个实例。在Bash中,我会使用mkdir创建锁文件,如果文件存在就立即从脚本返回;如果没有之前的实例在运行,则允许脚本继续运行,并在完成后删除锁文件。

在Lua中,是否有一种原子性地“检查文件是否存在或者如果文件不存在则创建它”的方式?我在Lua文档中找不到这样的功能,但我是这门语言的新手。io.open("filename","w")看起来似乎不能满足这些要求。如果没有mkdir的本机模拟,有没有更好的方法在Lua中实现这种类型的脚本锁定?谢谢!

点赞
用户692065
用户692065
如果无法执行命令 "mkdir lockfile >/dev/null 2>&1",则返回。

--进行保护操作

执行命令 "rmdir lockfile"
2013-01-07 22:36:45