Howdy. I am trying to launch an external shell process from my Rails app using IO.popen. The process runs just fine when I am logged in as the user from the shell but when I run it from Rails, the task doesn''t run properly and the output is too truncated to see any errors. Anything special I need to worry about when running shell tasks this way? I have code like the following: logger.debug("Command String: #{command_string}") pipe = IO.popen(command_string, "w+") if pipe @tmailer_out = pipe.readlines end logger.debug("Mailer Out: #{@tmailer_out}") So, running ''command_string'' in the shell as the user ''mongrel'', it works fine. But the above only produces about 3 characters of output. Any help is appreciated. Hunter
> pipe = IO.popen(command_string, "w+")> So, running ''command_string'' in the shell as the user ''mongrel'', it works > fine. But the above only produces about 3 characters of output.using popen() in the core of your app is a bad idea.. you only have a few rails instances to work with. some cases as few as one.. when this is blocked, nobodies requests get through. secondly it causes all sorts of weird problems. if want to use it in an app i''d try it via backgroundrb. make sure the env is right (eg PATH, character encodings, etc). but even with a proper env, ive had popen() in ruby act really weird, especially on windows..