は、何がいずれかの私のRubyスクリプトを再度実行し、または前のインスタンスが終了するのを待つことができないようにする簡単な方法かもしれない?**私は散らかっファイルロックを避けるために望んでいる同じRubyスクリプトの同時インスタンスを制限する方法はありますか? Rubyの1.9.xで
またはプロセステーブルチェック。
コアにすでにglobal mutexまたはセマフォのようなものがありますか? 私はネイティブMutexを研究しましたが、これは1つのRubyプロセス内のスレッドにのみ適用され、異なるプロセス間では適用されないようです。
**後で、タイムアウト機能を追加したり、N個のインスタンスに制限したり、複数のグローバルロック(システム全体のリソースごとに最大1つのインスタンスのみを持つ)を使用するように見えます。
私はすでにRubyの大部分を、 '[-z" $(pidof -x -o%PPID -o $$ $ {0 ## * /})のようなコード "] || exec echo "$(date)$ 0:$$は既にPID:$(pidof -x $ 0)、... bye !!"の臭いがありますが、他の目的にも役立ちます。すでにRuby自体に含まれているさらに優れた解決策は、固定ファイルをロックするなどです。 '/ tmp/scriptname.rb.lock'。終了時に、またはコードがクラッシュしても(例外を発生させることが多い)、システムはそのロックをクリアします。とにかく必要があるグローバルセマフォーにきれいでネイティブなインターフェイスがあるまで、私はちょうどそのハックに行きます。 – Marcos