2

Linux で 1 つのインスタンスしか実行できない 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 に答える