# a default email contact for when a service dies and needs to be restarted God.contact(:email) do |c| c.name = "john" c.to_email = "email@example.com" c.delivery_method = :sendmail end def notifies(condition) c.notify = "john" end def keep_process_running(w) w.start_if do |start| start.condition(:process_running) do |c| c.running = false c.interval = 5.seconds notifies(c) end end end def shared_config(w) w.group = "<%= application %>" w.dir = '<%= current_path %>' w.env = { 'BUNDLE_GEMFILE' => '', 'BUNDLE_BIN_PATH' => '', 'RAILS_ENV' => '<%= stage %>', 'RACK_ENV' => '<%= stage %>' } w.log = "<%= shared_path %>/god.log" keep_process_running(w) end # example for a thin-powered app, which is what I use the most of <%= thin_servers %>.times do |port_id| port = <%= thin_port %> + port_id God.watch do |w| # assign all watches to this group so personal_deity can stop/start them all at once w.name = "<%= application %>-thin-#{port}" w.start = "bundle exec thin -e <%= stage %> -p #{port} start" shared_config(w) end end