Уничтожение подпроцесса Python не освобождает дескриптор файла - PullRequest
3 голосов
/ 10 октября 2011

Когда вы запускаете исполняемый файл Windows с помощью subprocess.Popen в режиме оболочки и уничтожаете его (вместо того, чтобы exe завершил работу), исполняемый файл остается заблокированным до тех пор, пока работает программа python. Этого не происходит, когда shell = False. Кто-нибудь знает решение для этого?

import time
import subprocess
proc = subprocess.Popen(r"path_to_executable", shell=True)
time.sleep(1)
proc.terminate() #or kill()
proc = None
# the executable will be locked for the next 100 secs
time.sleep(100)

1 Ответ

1 голос
/ 10 октября 2011

Вы завершаете оболочку, а не процесс, который она породила. Это мое предположение. Если это правильно, взгляните на этот вопрос:

подпроцесс: удаление дочерних процессов в Windows

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...