test1.py:Subprocess.poll() restituisce erroneamente un valore
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 uscita:
Not running
2
test2.py:
time.sleep(30)
print "done"
Cosa sta succedendo? Non dovrebbe questo ritorno "Ancora in esecuzione"?
A causa di un risultato contraddicendo Ecco il codice completo 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()]
Aggiornato 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)
uscita Aggiornato:
Not running
0
Current working dir : C:\wamp\bin\apache\apache2.2.22
No error
Per me funziona bene. Il mio output è 'Still running'. – RanRag
da fuq ... beh allora ho un nuovo problema. Qualche idea? Pubblicherò altro codice ... BTW Ho pensato che fosse strano, perché non era dove nelle mie ricerche ho trovato un "2" come risultato per il sondaggio(). – Rawr
Stesso risultato con RanRag, ho ottenuto "Ancora in esecuzione". –