如何通过作为相同的脚本运行来销毁.exe文件(不是从py转换)

时间:2016-06-09 23:14:29

标签: python subprocess exe python-3.4

我有一个通过subprocess.Popen()运行.exe文件的脚本,但我刚才意识到,即使我关闭了脚本,.exe文件也会继续运行。有没有办法停止通过它的名称或ID运行.exe文件?该exe文件不是从py文件转换的,所以我被卡住了。

1 个答案:

答案 0 :(得分:0)

如果您运行process = subprocess.Popen(...),则可以稍后使用process.terminate()终止该过程。

如果子流程可能会创建自己的子级,那么process.terminate()和/或process.kill()可能就不够了。在Windows上,您可能需要创建作业对象并为其分配.exe进程。在Unix上,您可以使用start_new_session=Truepreexec_fn=os.setsidpreexec_fn=os.setpgrp在早期的Python版本上加上os.pgkill(process.pid, signal.SIGINT)来杀死属于同一进程组的进程(或prctl(PR_SET_PDEATHSIG, ...)在Linux上,当父亲去世时发送信号)。见

另见killableprocess.py