Skip to content
This repository has been archived by the owner on May 18, 2023. It is now read-only.

Configuration Unicorn

ZeroC0D3 Team edited this page Jan 19, 2018 · 1 revision

Configuration for Unicorn

Configuration for Unicorn Development / Staging

# config/unicorn/production.rb

root = "/home/deploy/KandagaCMS.dev/current"
working_directory root

Unicorn::HttpServer::START_CTX[0] = "#{ root }/bin/unicorn"

pid               "#{ root }/tmp/pids/unicorn.pid"
stderr_path       "#{ root }/log/unicorn.log"
stdout_path       "#{ root }/log/unicorn.log"
listen            "#{ root }/tmp/sockets/unicorn-staging.socket"

worker_processes  4
timeout           90

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
end

# If you are using Redis but not Resque, change this
if defined?(Resque)
  Resque.redis.quit
  Rails.logger.info('Disconnected from Redis')
end

defined?(ActiveRecord::Base) and
  ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
  puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
end

defined?(ActiveRecord::Base) and
  ActiveRecord::Base.establish_connection
end

Configuration for Unicorn Production

# config/unicorn/production.rb

root = "/home/deploy/KandagaCMS/current"
working_directory root

Unicorn::HttpServer::START_CTX[0] = "#{ root }/bin/unicorn"

pid               "#{ root }/tmp/pids/unicorn.pid"
stderr_path       "#{ root }/log/unicorn.log"
stdout_path       "#{ root }/log/unicorn.log"
listen            "#{ root }/tmp/sockets/unicorn-production.socket"

worker_processes  4
timeout           90

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
end

# If you are using Redis but not Resque, change this
if defined?(Resque)
  Resque.redis.quit
  Rails.logger.info('Disconnected from Redis')
end

defined?(ActiveRecord::Base) and
  ActiveRecord::Base.connection.disconnect!
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
  puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
end

defined?(ActiveRecord::Base) and
  ActiveRecord::Base.establish_connection
end

Get CPU Info

  • Linux
    grep -c processor /proc/cpuinfo
    
  • OS-X
    sysctl -n machdep.cpu.brand_string   
    sysctl -a | grep machdep.cpu | grep core_count  
    sysctl -a | grep machdep.cpu | grep thread_count
    
Clone this wiki locally