デーモンにラップされた 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 の両方から抜け出すためのクリーンな方法について何か提案はありますか?