With PID

The simple way to create and monitor a Ruby daemon.

Works by generating a bash file and executing it instead of doing any Ruby process tricks.

Requirements


sudo gem install with_pid

Ruby script

/data/my_app/current/bin/dj


#!/usr/bin/env ruby

require 'rubygems'
require 'with_pid'

with_pid(
  :action => ARGV[0], # start or stop
  :command => "/data/my_app/current/script/runner 'Delayed::Worker.new.start'",
  :name => "dj",
  :pid => "/var/run/dj/dj.pid",
  :tmp => "/data/my_app/current/tmp",
  :user => "deploy"
)

Be sure to run chmod +x /data/my_app/current/bin/dj.

It is up to you to make sure that the command you execute runs in a continuous loop.

Monit


check process delayed_job
  with pidfile /var/run/dj/dj.pid
  start program = "/data/my_app/current/bin/dj start"
  stop program = "/data/my_app/current/bin/dj stop"
  group delayed_job