#!/usr/bin/env puma directory '<%= current_path %>' rackup "<%=fetch(:puma_rackup)%>" environment '<%= fetch(:puma_env) %>' <% if fetch(:puma_tag) %> tag '<%= fetch(:puma_tag)%>' <% end %> pidfile "<%=fetch(:puma_pid)%>" state_path "<%=fetch(:puma_state)%>" stdout_redirect '<%=fetch(:puma_access_log)%>', '<%=fetch(:puma_error_log)%>', true threads <%=fetch(:puma_threads).join(',')%> <%= puma_plugins %> <%= puma_bind %> <% if fetch(:puma_control_app) %> activate_control_app "<%= fetch(:puma_default_control_app) %>" <% end %> workers <%= puma_workers %> <% if fetch(:puma_worker_timeout) %> worker_timeout <%= fetch(:puma_worker_timeout).to_i %> <% end %> <% if puma_daemonize? %> daemonize <% end %> <% if puma_preload_app? %> preload_app! <% else %> prune_bundler <% end %> on_restart do puts 'Refreshing Gemfile' ENV["BUNDLE_GEMFILE"] = "<%= fetch(:bundle_gemfile, "#{current_path}/Gemfile") %>" end <% if puma_preload_app? and fetch(:puma_init_active_record) %> before_fork do ActiveRecord::Base.connection_pool.disconnect! if RUBY_PLATFORM.match?(/linux/) require 'puma_worker_killer' PumaWorkerKiller.config do |config| config.ram = (`free`.lines.to_a[1].split[1].to_i / 1024).to_i config.frequency = 30 config.percent_usage = 0.5 config.rolling_restart_frequency = 8 * 3600 config.reaper_status_logs = true end PumaWorkerKiller.start end end on_worker_boot do ActiveSupport.on_load(:active_record) do ActiveRecord::Base.establish_connection end end <% end %>