From: Sean O'Halpin Date: 2008-12-18T03:03:57+09:00 Subject: Re: Block execution of script while same script is already running On Wed, Dec 17, 2008 at 9:37 AM, MrBanabas@googlemail.com wrote: > Hi, > > Does anybody no how I may achieve it: > > Bob is starting script my_test.rb which runs a over an hour... > 5 minutes later... > Alice is not knowing that Box has already started is and starts it > again. > Script should detect that it is already running and stop executing. > > What is the best way to achieve this? > > Thanks a lot. > > -- > Volker > Daniel Berger suggested the following technique (see thread starting at ruby-talk:302489). This is my version: def single_instance(&block) if File.open($0).flock(File::LOCK_EX|File::LOCK_NB) block.call else warn "Script #{ $0 } is already running" end end single_instance do # your main code here end Regards, Sean