'ps -A' command freezes Popen3

Thomas Guettler guettli at thomas-guettler.de
Wed Aug 31 10:52:41 EDT 2005


Am Wed, 31 Aug 2005 07:12:49 -0700 schrieb gao_bolin:

> Does anybody know why the following lines would freeze python [2.4.1 on
> Linux]:
> 
> import popen2
> a = popen2.Popen3('ps -A')
> a.wait()

Because "ps -A" produces a lot of output to stdout, so that
it blocks. It blocks until you read from the stdout of the subprocess.
If you don't read, it will wait forever. You can redirect the output to a
file "ps -A > /tmp/example". This won't block. Or you use the module
select if you are in a unix environment.

HTH,
  Thomas


-- 
Thomas Güttler, http://www.thomas-guettler.de/





More information about the Python-list mailing list