worker_processes 2 timeout 60 preload_app true check_client_connection false before_fork do |server, worker| # the following is highly recommended for Rails + "preload_app true" # as there's no need for the master process to hold a connection defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect! if /darwin/ =~ RUBY_PLATFORM require 'fiddle' # Dynamically load Foundation.framework, ~implicitly~ initialising # the Objective-C runtime before any forking happens in Unicorn # # From https://bugs.ruby-lang.org/issues/14009 Fiddle.dlopen '/System/Library/Frameworks/Foundation.framework/Foundation' end end after_fork do |server, worker| # Unicorn clears out signals before it forks, so rbtrace won't work # unless it is enabled after the fork. require 'rbtrace' if ENV['ENABLE_RBTRACE'] # the following is *required* for Rails + "preload_app true", defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection end