這是我的主文件:web.py +子=掛
import subprocess, time
pipe = subprocess.PIPE
popen = subprocess.Popen('pythonw -uB test_web_app.py', stdout=pipe)
time.sleep(3)
而這裏的test_web_app.py:
import web
class Handler:
def GET(self): pass
app = web.application(['/', 'Handler'], globals())
app.run()
當我經營的主要文件,程序執行,但殭屍進程留下來,我必須手動殺死它。爲什麼是這樣?節目結束時我怎樣才能讓Popen死亡?如果在程序結束之前管理標準輸出和睡眠一段時間,Popen只會掛起。
編輯 - 這裏的主文件的最後,工作版本:
import subprocess, time, atexit
pipe = subprocess.PIPE
popen = subprocess.Popen('pythonw -uB test_web_app.py', stdout=pipe)
def kill_app():
popen.kill()
popen.wait()
atexit.register(kill_app)
time.sleep(3)
子進程永遠不會做......它一直永遠服務。當父進程結束時(我關閉控制檯時),我希望子進程死掉。我需要標準輸出。 – 2011-02-17 09:47:08
我已經更新了我的答案。 – 2011-02-17 09:49:19