0

デーモンにラップされた Sinatra アプリケーションがあり、Sinatra の初期化で問題が発生した場合、Sinatra とデーモンの両方を終了できません。

Sinatra クラスの非常に簡単な例を次に示します (system.rb 内):

class System < Sinatra::Base

    def initialize
        if(somethingGoesWrong)
            exit!
        end
    end

 end

Sinatra アプリケーション (sinatra.rb 内) をラップするデーモンは次のとおりです。

Daemons.run_proc('SinatraSystem') do
    System.run!
end

何か問題が発生してプログラムを終了する必要がある場合、実行は停止しますが、pid ファイルやその他のクリアする必要のあるものは残され、削除されません。シナトラがデーモンを終わらせようとすることに気難しいか、デーモンが止めようとしているシナトラを捕まえ続けているようです。Sinatra アプリと Daemon の両方から抜け出すためのクリーンな方法について何か提案はありますか?

4

0 に答える 0