如果我有一个Ruby程序,并且我只希望它的一个实例能够一次运行,那么最好的方法是什么?我试过谷歌搜索,但它认为我正在寻找与单身人士相关的信息,因此很难找到我真正想要的东西。
[1]最好=最短,最简单,自我解释,不需要额外的宝石
答案 0 :(得分:4)
来自http://rosettacode.org/wiki/Determine_if_only_one_instance_is_running#Ruby
def main
puts "first instance"
sleep 20
puts :done
end
if $0 == __FILE__
if File.new(__FILE__).flock(File::LOCK_EX | File::LOCK_NB)
main
else
raise "another instance of this program is running"
end
end