>>636
DBのロックやファイルのロックを使う。
具体的にはこんな感じ。(ファイルロックの例)

open('test.lck') do |f|
raise('二重起動です') unless f.flock(File::LOCK_EX | File::LOCK_NB)
while (print('input ^Z to exit> ') or gets) do end
f.flock File::LOCK_UN
end