Forum: Ruby question about the system method

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jarod Z. (Guest)
on 2008-12-01 19:35
(Received via mailing list)
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.
Avdi G. (Guest)
on 2008-12-01 19:38
(Received via mailing list)
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
Jarod Z. (Guest)
on 2008-12-02 03:45
(Received via mailing list)
IO.popen() works well.
Thanks a lot!!

Jarod Z.
This topic is locked and can not be replied to.