Python子进程kill不会释放文件句柄

时间:2011-10-10 12:55:09

标签: python subprocess

当您在shell模式下使用subprocess.Popen启动Windows可执行文件并将其终止(而不是让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 个答案:

答案 0 :(得分:1)

您正在终止shell而不是它产生的进程。这是我的猜测。如果这是对的,请看看这个问题:

subprocess: deleting child processes in Windows