Subprocessing with popen or popen3?

Currently I have a class MyServer that extends IO, and then I call:

server = MyServer.popen(COMMAND, 'r+)

The only problem is I need to separate stderr and stdout. I contemplated
popen3, but I don't see how I can make it associated with an object,
which I need in the program. And in addition, it seems to lack a way to
get the pid.

I could theoretically create the stderr, stdout and stdin within the
MyServer class at initialization for popen3, but then I can't use the
pid to kill the process when I call the shutdown method. Any ideas?

···

--
Posted via http://www.ruby-forum.com/.

You might find my framework "rexec" useful:

  RExec [Orion Transfer Wiki]

More specifically:
  [RDOC] http://gems.oriontransfer.org/doc_root/rexec-1.1.6/rdoc/index.html
  RExec::Task

rexec can help you make a daemon:
  RubyDNS and RExec Updates [Orion Transfer Wiki]

Kind regards,
Samuel

···

On 19/09/2009, at 2:01 AM, Dylan Lukes wrote:

Currently I have a class MyServer that extends IO, and then I call:

server = MyServer.popen(COMMAND, 'r+)

The only problem is I need to separate stderr and stdout. I contemplated
popen3, but I don't see how I can make it associated with an object,
which I need in the program. And in addition, it seems to lack a way to
get the pid.

I could theoretically create the stderr, stdout and stdin within the
MyServer class at initialization for popen3, but then I can't use the
pid to kill the process when I call the shutdown method. Any ideas?
--
Posted via http://www.ruby-forum.com/\.

Thats odd, it seems like all the URLs were stripped out... :confused:

  http://wiki.oriontransfer.org/code:rexec.git
  http://wiki.oriontransfer.org/blog:2009:08:29:rubydns_and_rexec_updates

Let me know more about what you are doing and I might be able to help.

Kind regards,
Samuel

···

On 19/09/2009, at 3:23 PM, Space Ship Traveller wrote:

You might find my framework "rexec" useful:

  RExec [Orion Transfer Wiki]

More specifically:
  [RDOC] http://gems.oriontransfer.org/doc_root/rexec-1.1.6/rdoc/index.html
  RExec::Task

rexec can help you make a daemon:
  RubyDNS and RExec Updates [Orion Transfer Wiki]

Kind regards,
Samuel

On 19/09/2009, at 2:01 AM, Dylan Lukes wrote:

Currently I have a class MyServer that extends IO, and then I call:

server = MyServer.popen(COMMAND, 'r+)

The only problem is I need to separate stderr and stdout. I contemplated
popen3, but I don't see how I can make it associated with an object,
which I need in the program. And in addition, it seems to lack a way to
get the pid.

I could theoretically create the stderr, stdout and stdin within the
MyServer class at initialization for popen3, but then I can't use the
pid to kill the process when I call the shutdown method. Any ideas?
--
Posted via http://www.ruby-forum.com/\.