test1.py:Subprocess.poll() devuelve un valor falsamente
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 de salida:
Not running
2
test2.py:
time.sleep(30)
print "done"
¿Qué está pasando? ¿No debería esto devolver "Todavía en ejecución"?
Debido resultado contradice aquí está el código test1.py completo:
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()]
Actualizado 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)
salida Actualizado:
Not running
0
Current working dir : C:\wamp\bin\apache\apache2.2.22
No error
Está funcionando bien para mí. Mi salida es 'Todavía en ejecución'. – RanRag
da fuq ... bueno, entonces tengo un nuevo problema. ¿Algunas ideas? Publicaré más código ... Por cierto, pensé que era raro, porque en ninguna parte de mis búsquedas encontré un "2" como resultado de la encuesta(). – Rawr
El mismo resultado con RanRag, obtuve "Todavía en ejecución" también. –