Getting returncode of a command executed with Popen through xterm

Diez B. Roggisch deets at web.de
Tue Oct 19 10:10:24 CEST 2010


AmFreak at web.de writes:

> Hi,
>
> i have a program that have to execute linux commands. I do it like this:
>
> retcode = Popen(["xterm", "-e", command],stdin=PIPE, stdout=PIPE,
> stderr=PIPE)
>
> I have to use xterm because some commands need further input from the
> user after they are executed.
> But when i use xterm i can't get the returncode or the errormessage
> from a command:
>
> print retcode.returncode				# always 0
> print retcode.stderr.read()			# always empty
> print retcode.stdout.read()			# always empty
>
> The same code works without xterm. As i understand it, if i use xterm
> the retcode refers to the xterm window (process).
> But is there a way i can get the returncode and errormessage of the
> command i sent to xterm ?

You could create a python-wrapper-script that will store the result and
streams in files. Like this


command = ["callwrapper", "--dest-key=<random_string>", "the_real_command"]
Popen(["xterm", "-e", command])

The dest-key will be used to create files named <random_string>.status,
<random_string>.stdout, <random_string>.stderr so that you can read from
them afterwards.

Diez



More information about the Python-list mailing list