单实例Ruby应用程序?

时间:2011-08-24 17:20:31

标签: ruby

如果我有一个Ruby程序,并且我只希望它的一个实例能够一次运行,那么最好的方法是什么?我试过谷歌搜索,但它认为我正在寻找与单身人士相关的信息,因此很难找到我真正想要的东西。

[1]最好=最短,最简单,自我解释,不需要额外的宝石

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