Skip to content

Instantly share code, notes, and snippets.

@davidnorth
Created January 15, 2013 19:43
Show Gist options
  • Save davidnorth/4541371 to your computer and use it in GitHub Desktop.
Save davidnorth/4541371 to your computer and use it in GitHub Desktop.
Bluepill.application("<%= app %>", :foreground => false, :log_file => "/data/<%= app %>/shared/log/bluepill.log") do |app|
app.uid = "<%= user %>"
app.gid = "<%= user %>"
app.working_dir = "/data/<%= app %>/current/"
<% if engine.process_names.include? 'unicorn' %>
<% process = engine.process('unicorn') %>
<% port = engine.port_for(process, 1) %>
app.process('unicorn') do |process|
process.pid_file = "/data/<%= app %>/shared/pids/unicorn.pid"
process.start_command = "<%= process.command %>"
process.stop_command = "kill -QUIT {{PID}}"
process.restart_command = "kill -USR2 {{PID}}"
process.environment = <%= engine.env.merge("PORT" => port.to_s).inspect %>
process.stop_grace_time = 60.seconds
process.start_grace_time = 60.seconds
process.restart_grace_time = 60.seconds
process.monitor_children do |child_process|
child_process.stop_command = "kill -QUIT {{PID}}"
child_process.checks :mem_usage, :every => 10.seconds, :below => 150.megabytes, :times => [3,4], :fires => :stop
child_process.checks :cpu_usage, :every => 10.seconds, :below => 20, :times => [3,4], :fires => :stop
end
process.group = "unicorn"
end
<% end %>
<% engine.process_names.reject{ |p| p == 'unicorn' }.each do |name| %>
<% process = engine.process(name) %>
<% 1.upto(engine.formation[name]) do |num| %>
<% port = engine.port_for(process, num) %>
app.process("<%= name %>-<%= num %>") do |process|
process.start_command = "<%= process.command %>"
process.pid_file = "/data/<%= app %>/shared/pids/<%= name %>-<%= num %>.pid"
process.daemonize = true
process.environment = <%= engine.env.merge("PORT" => port.to_s).inspect %>
process.stop_signals = [:quit, 30.seconds, :term, 5.seconds, :kill]
process.stop_grace_time = 45.seconds
process.start_grace_time = 8.seconds
process.stdout = process.stderr = "<%= log %>/<%= app %>-<%= name %>-<%= num %>.log"
process.monitor_children do |children|
children.stop_command "kill {{PID}}"
end
process.group = "<%= name %>"
end
<% end %>
<% end %>
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment