test1.py:
process = Popen(["python","test2.py"]) time.sleep(3) alive = process.poll() if alive is None: print "Still running" else: print "Not running\r\n" print "%r" % alive
test1.py Output:
Not running
2
test2.py:
time.sleep(30) print "done"
What's happening? Should this return still work?
Due to conflicting results, here is the full test1.py code:
import cStringIO import os import cgi import time from subprocess import Popen def application(environ, start_response): headers = [] headers.append(('Content-Type', 'text/plain')) write = start_response('200 OK', headers) input = environ['wsgi.input'] output = cStringIO.StringIO() process = Popen(["python","test2.py"]) time.sleep(3) alive = process.poll() if alive is None: print >> output, "Still running" else: print >> output, "Not running\r\n" print >> output, "%r" % alive output.write(input.read(int(environ.get('CONTENT_LENGTH', '0')))) return [output.getvalue()]
Updated test1.py:
process = Popen(["python","C:/wamp/www/python/popen/test2.py"], shell=True) time.sleep(5) alive = process.poll() if alive is None: #print >> output, "%r" % alive print >> output, "Still running" else: print >> output, "Not running" print >> output, "%r" % alive print >> output, "Current working dir : %s" % os.getcwd() print >> output, os.strerror(0)
Updated output:
Not running
0
Current working dir : C:\wamp\bin\apache\apache2.2.22
No error
source share