What's the cleanest way to add have a start / stop control with EventMachine


#1

Hi there,

I’m new to playing with EventMachine and I wondered if anyone has a nice
way of backgrounding it and start / stopping it from the command line
like an init script.

e.g. ./mydaemon start|stop

I’ve not seen an example of this and search through the Juggernaut gem
source I couldn’t get the come I’d stolen from it to work with a basic
echo server.

e.g. mydaemon start|stop

Any ideas?

RobL


#2

Here’s what I did :

=============================

script/em_manager

I did a chmod +x on this file

#!/usr/bin/env ruby
require ‘rubygems’
require ‘daemons’
options = {
:app_name => “em_manager”,
#:ARGV => [‘start’, ‘-f’, ‘–’, ‘param_for_myscript’]
#:dir_mode => :normal,
#:dir => path,
:multiple => false,
#:ontop => true,
:mode => :load,
:log_output => true,
#:keep_pid_files => true,
#:backtrace => true,

:monitor => true

}

#=====================

app/daemons/em_client.rb

EventMachine::run {
(…)
}

Daemons.run(’./app/daemons/em_client.rb’, options)