Question about the system method


#1

Hi, all

 I want to use system method to run a background process, like

 system("ruby deamon.rb") # the deamon.rb runs a dead loop

 When my main process ends, I want to end the background process

too.

 How can I do it?

 If I can get the pid of background process, I can use

Process.kill. But the system method dosen’t return the pid.

 Does anyone here know the solution?

 Thank you

Jarod Z.


#2

On Mon, Dec 1, 2008 at 12:29 PM, Jarod Z. removed_email_address@domain.invalid
wrote:

Hi, all

I want to use system method to run a background process, like

system("ruby deamon.rb") # the deamon.rb runs a dead loop

When my main process ends, I want to end the background process

too.

How can I do it?

The basic answer is to use IO.popen() - see
http://www.ruby-doc.org/core/classes/IO.html#M002267

For more advances applications you may want to take a look at Daemons:
http://daemons.rubyforge.org/


Avdi

Home: http://avdi.org
Developer Blog: http://avdi.org/devblog/
Twitter: http://twitter.com/avdi
Journal: http://avdi.livejournal.com


#3

IO.popen() works well.
Thanks a lot!!

Jarod Z.