# Launch many daemons from script/xxx

**URL:** <https://www.ruby-forum.com/t/launch-many-daemons-from-script-xxx/159265>\
**Category:** Rails\
**Created:** [February 2, 2009, 9:08pm UTC](https://www.ruby-forum.com/t/launch-many-daemons-from-script-xxx/159265 "2009-02-02T21:08:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![joserwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@joserwan](https://www.ruby-forum.com/u/joserwan)\
**Post date:** [February 2, 2009, 9:08pm UTC](https://www.ruby-forum.com/t/launch-many-daemons-from-script-xxx/159265/1 "2009-02-02T21:08:55Z")

</div>

Hello, I try to launch many daemons from a script written in the  
script/repository.

One daemon is launched per site (AR model “Site”).  
I want to load Rails environment just once.

Each time a daemon is launched, script exits.  
I tried to “encapsulate” daemon launching in threads, but I have the  
same issue.

Have you any idea how to do what I want to ?

my codes :

without threading :

(…)  
Site.all.each{|site|  
p “start #{site.name}…”  
Daemons.run("#{RAILS\_ROOT}/app/daemons/proxy\_client.rb",  
options.merge({:app\_name =\> “proxy\_client\_#  
{site.id.to\_s}”, :ARGV =\>[ARGV[0], ‘–’, “SITE=#  
{site.id.to\_s}”]})  
}  
(…)

With threading :  
(…)  
Site.all.each{|site|  
p “start #{site.name}…”  
@threads \<\< Thread.new{Daemons.run("#{RAILS\_ROOT}/app/daemons/  
proxy\_client.rb", options.merge({:app\_name =\> “proxy\_client\_#  
{site.id.to\_s}”,  
:ARGV =\>[ARGV[0],  
‘–’, “SITE=#{site.id.to\_s}”]}))  
}  
end  
@threads.each{|t| t.join}  
(…)

---

<div class="post-metadata">

**Author:** ![joserwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ea5d25/32.png) [@joserwan](https://www.ruby-forum.com/u/joserwan)\
**Post date:** [March 19, 2009, 11:24pm UTC](https://www.ruby-forum.com/t/launch-many-daemons-from-script-xxx/159265/2 "2009-03-19T23:24:32Z")

</div>

You can use Daemons.call instead of run.
