test1.py:Subprocess.poll()错误地返回一个值
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输出:
Not running
2
test2.py:
time.sleep(30)
print "done"
这是怎么回事?不应该返回“仍在运行”?
由于矛盾的结果,这里的全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()]
更新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)
更新的输出:
Not running
0
Current working dir : C:\wamp\bin\apache\apache2.2.22
No error
它对我来说工作得很好。我的输出是“仍在运行”。 – RanRag 2012-08-10 12:23:59
da fuq ...那么我有一个新问题。有任何想法吗?我会发布更多的代码...顺便说一句,我认为这很奇怪,因为在我的搜索没有找到“2”作为poll()的结果。 – Rawr 2012-08-10 12:24:58
与RanRag同样的结果,我也得到了“仍在运行”。 – 2012-08-10 12:31:49