test1.py:Subprocess.poll() fałszywie zwraca wartość
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 wyjściowych:
Not running
2
test2.py:
time.sleep(30)
print "done"
Co się dzieje? Czy to nie powinno powrócić "Wciąż działa"?
Ze względu na wprost przeciwko wyniku oto pełny kod test1.py:
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 wyjściowa:
Not running
0
Current working dir : C:\wamp\bin\apache\apache2.2.22
No error
Działa dobrze dla mnie. Moje wyniki to 'Still Running'. – RanRag
da fuq ... cóż, mam nowy problem. Jakieś pomysły? Dodaję więcej kodu ... BTW Myślałem, że to dziwne, bo nie gdzie w moich wyszukiwaniach znalazłem "2" jako wynik dla ankiety(). – Rawr
Ten sam wynik z RanRag, mam również "Jeszcze działa". –