Вот мой основной файл:
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 только зависает, если я передаю стандартный вывод и немного сплю, прежде чем программа завершится.
Правка - вот окончательная рабочая версия основного файла:
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)