win32/process Process.create failure

M

Mike Stead

Hi all, I'm hoping you can lend me some help.

I make the following call:

require 'win32/process'
Process.create:)app_name => "perl C:/bin/filepp-1.8.0/filepp.pl -c")

This fails with the error:

CreateProcess() failed:

And as you can see provides no info around the failure.

This same command works fine through cygwin and dos prompt.

Can anyone give me some idea of what I'm doing wrong?
 
R

Roger Pack

require 'win32/process'
Process.create:)app_name => "perl C:/bin/filepp-1.8.0/filepp.pl -c")

This fails with the error:

CreateProcess() failed:

Mine seems to work ok.
=> #<struct Struct::processInfo process_handle=1916, thread_handle=1896,
process_id=5640, thread_id=1904>

Does system("..") work with the same call?
If you get truly desperate there's 1.9.1's "Process.spawn"
-rp
 
M

Mike Stead

Mine seems to work ok.


=> #<struct Struct::processInfo process_handle=1916, thread_handle=1896,
process_id=5640, thread_id=1904>

Does system("..") work with the same call?
If you get truly desperate there's 1.9.1's "Process.spawn"
-rp

Thanks for the response.

This is gem code so really needs to work with older versions of ruby.
Also something I maybe should have said to begin with (was trying not
to overcomplicate the issue) is that I'm needing to capture the stdin,
stdout and stderr.

I first tried using win32-open3's Open3.popen but had issues trying to
kill the process when I was done with it so then moved onto win32/
process. I'm now looking at the systemu gem in the hope it will work
without problem.

With Open4 I make the following call on my mac with no issues.

@pid, @w, @r, @e = open4.popen4("perl C:/bin/filepp-1.8.0/filepp.pl -
c")

Does anyone know how I can do this same thing with systemu, assigning
the stdin, stdout and stderr to variables?

Oh and system(cmd) does work but I need to be able to kill the process
once I'm done r/w from its associated streams.

Appreciate any help.
 
R

Roger Pack

I assume this does work then?
Thanks for the response.

This is gem code so really needs to work with older versions of ruby.
Also something I maybe should have said to begin with (was trying not
to overcomplicate the issue) is that I'm needing to capture the stdin,
stdout and stderr.

Yeah win32/process *should* work.
You could also try it on other boxes.
you could also file a bug report with them (preferably with a
reproducible test case, which might be hard here...).
http://rubyforge.org/tracker/?group_id=85

Also try different version of ruby? (one click versus rubyinstaller...)

-rp
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,565
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top