Mongrelにシグナルハンドラによるトレース機能を追加する方法。
$ kill -QUIT `cat ./log/mongrel.pid`
でトレースをオン・オフできるようにする方法。
以下のスクリプトを保存し、-Sオプションでファイルを指定してMongrelを起動します。
# # mongrel_handlers.rb # require 'tracer' @my_tracer_flg = false trap("QUIT") { p Thread.list if @my_tracer_flg Tracer.off @my_tracer_flg = false log "-------- TRACER OFF --------" else log "-------- TRACER ON --------" @my_tracer_flg = true Tracer.on end }
起動。
$ mongrel_rails -S mongrel_handlers.rb
本当はJavaのスレッドダンプみたいな機能がほしいんですが……。Thread.listを使ってなんとかならないのかな?