我有一个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,所以请相应地提出解决方案。
答案 0 :(得分:0)
subprocess.Popen()
返回的进程有一个terminate()
方法来杀死自Python 2.6以来的子进程。要使用它,您必须升级Python安装或并行安装两个版本的Python。
但更好的方法通常是找出如何告诉这个过程停止并使用它。当您发送某些标准输入或关闭Popen
创建的管道时,许多进程都会停止。