spawning a process with subprocess
bhunter
brian.p.hunter at gmail.com
Mon Nov 26 11:54:40 EST 2007
Hi,
I've used subprocess with 2.4 several times to execute a process, wait
for it to finish, and then look at its output. Now I want to spawn
the process separately, later check to see if it's finished, and if it
is look at its output. I may want to send a signal at some point to
kill the process. This seems straightforward, but it doesn't seem to
be working.
Here's my test case:
import subprocess, time
cmd = "cat somefile"
thread = subprocess.Popen(args=cmd.split(), shell=True,
stdout=subprocess.PIPE, stdin=subprocess.PIPE,
stderr=subprocess.STDOUT, close_fds=True)
while(1):
time.sleep(1)
if(thread.returncode):
break
else:
print thread.returncode
print "returncode = ", thread.returncode
for line in thread.stdout:
print "stdout:\t",line
This will just print the returncode of None forever until I Ctrl-C it.
Of course, the program works fine if I call thread.communicate(), but
since this waits for the process to finish, that's not what I want.
Any help would be appreciated.
More information about the Python-list
mailing list