railsサーバ(unicron)の忘備録

unicornのインストール

# gem install unicorn

起動ファイルの作成(railsアプリのディレクトリを指定)

# vim config/config.rb

# -*- coding: utf-8 -*-
# ワーカーの数
worker_processes 2

# アプリのディレクトリを指定
working_directory "/usr/local/xxxx/"

listen '/tmp/unicorn.sock', :backlog => 1
listen 3000, :tcp_nopush => true

pid '/tmp/unicorn.pid'

timeout 10

# ログの出力場所
stdout_path 'log/unicorn.stdout.log'
stderr_path 'log/unicorn.stderr.log'

preload_app true
GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true

before_fork do |server, worker|
  defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!

  old_pid = "#{server.config[:pid]}.oldbin"
  if old_pid != server.pid
    begin
      sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
      Process.kill(sig, File.read(old_pid).to_i)
    rescue Errno::ENOENT, Errno::ESRCH
    end
  end

sleep 1
end

after_fork do |server, worker|
  defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
end

unicornの起動

# unicorn_rails -D -c config/unicorn.rb

unicornの停止

# kill pid

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>