Railsの開発環境でもThinを使う
開発環境でThinを使っても、別プロセスでtail -f でログを見なくちゃいけないので面倒です。なので、commands/serverのソースを参考に気軽にThinを開発環境で使えるようにしてみました。
RAILS_ROOT/script/thin
#!/usr/bin/env ruby
require File.dirname( __FILE__ ) + '/../config/boot'
require 'activesupport'
require 'commands/servers/base'
ENV["RAILS_ENV"] = "development"
RAILS_ENV.replace("development") if defined?(RAILS_ENV)
require 'initializer'
Rails::Initializer.run(:initialize_logger)
puts "=> Rails application starting by Thin"
puts "=> Ctrl-C to shutdown server"
tail_thread = tail(Pathname.new("#{File.expand_path(RAILS_ROOT)}/log/#{RAILS_ENV}.log").cleanpath)
trap(:INT) { exit }
begin
`thin start`
ensure
tail_thread.kill if tail_thread
puts 'Exiting'
end
これだけ。特に深くソースを探ったわけではないので、おかしなことをやっているかもしれないけど、まあ動いたし、使うのはぼくだけだからいいや。これで、
./script/thin
を実行すれば、
[tsukasa@] $ ./script/thin
=> Rails application starting by Thin
=> Ctrl-C to shutdown server
SQL (0.000165) SET NAMES 'utf8'
SQL (0.000103) SET SQL_AUTO_IS_NULL=0
SQL (0.000120) SELECT version FROM schema_info
こんな感じでログも表示されるので便利です。