如何杀死Windows 64位平台上的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”不会被打开。所以,我想知道一些干净的解决scheme,以便首先所有三个模块被执行,然后而他们自己closures。 至于,我在Windows 64位平台上使用python 2.5,所以善意地build议相应的解决scheme。

subprocess.Popen()返回的进程有一个terminate()方法来从Python 2.6以后terminate()子进程。 要使用它,你将不得不升级你的Python安装或并行安装两个版本的Python。

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