|#! /usr/bin/env ruby|
|status = DATA.flock(File::LOCK_EX | File::LOCK_NB)|
|if status == 0|
|puts "we have the lock..."|
|puts "another process has the lock..."|
|### this data section MUST be here for DATA.flock to function.|
|### the user locking the script MUST have write privledges to the script|
this is a simple technique that portably prevents two copies of a script from running at the same time. if you have ruby scripts in your crontab you will burn in hell if you aren't using this or a similar technique to prevent script stacking taking your box down. same applies for background jobs.