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