如何在Windows 64位平台上杀死python 2.5中的进程?

时间:2015-05-11 15:08:41

标签: python windows subprocess terminate python-2.5

我有一个python脚本,我打开三个可执行文件,如下所示:

Aa=subprocess.Popen([r"..\location\learning\A.exe"])
Bb=subprocess.Popen([r"..\location\learning\new\B.bat"])
Cc=subprocess.Popen([r"..\location\learning\new\B.bat"])

所有这三个文件都已打开。现在,下一步我要杀死这三个打开的​​模块。所以,首先我试图杀死“Aa”如下:

PROCESS_TERMINATE= 1
k = ctypes.windll.kernel32klll
handle = k.OpenProcess(PROCESS_TERMINATE, False,Aa.pid)
k.TerminateProcess(handle, -1)
k.CloseHandle(handle)

但是在添加这些线条之后,三个模块'Aa','Bb'和'Cc'它们都没有打开。所以,我想知道一些干净的解决方案,以便首先执行所有三个模块过了一会儿,他们自己就闭嘴了。因为,我在Windows 64位平台上使用python 2.5,所以请相应地提出解决方案。

1 个答案:

答案 0 :(得分:0)

subprocess.Popen()返回的进程有一个terminate()方法来杀死自Python 2.6以来的子进程。要使用它,您必须升级Python安装或并行安装两个版本的Python。

但更好的方法通常是找出如何告诉这个过程停止并使用它。当您发送某些标准输入或关闭Popen创建的管道时,许多进程都会停止。