是否有可能从Python内杀死Windows上的进程?

我正在使用Python 2.6 。 有时会出现一些开放的过程,而这个过程本身就会带来一些问题。 我希望能够以编程方式检测该进程有多个实例并杀死它们。

例如,在某些情况下可能有50个make.exe实例打开。 我想知道有20个实例是打开的,并且全部杀死它们。 这是如何完成的?

Solutions Collecting From Web of "是否有可能从Python内杀死Windows上的进程?"

我想你可以使用taskkill和Python的os.system()

import os os.system("taskkill /im make.exe") 

注意:我只是注意到你可能必须完全限定taskkill路径。 我正在使用一个Linux的盒子,所以我不能测试…

您可以使用win32 API的TerminateProcess一个进程。 请参阅以下示例: http : //code.activestate.com/recipes/347462-terminating-a-subprocess-on-windows/

你需要给它一个进程句柄。 如果进程是从你的代码开始的,进程句柄由CreateProcess或popen返回。

如果进程是由别的东西开始的,你需要得到这个句柄,你可以使用EnumProcess或WMI来检索它。

怎么样,我用ActiveState的Python 2.7测试:

 import sys, traceback, os def pkill (process_name): try: killed = os.system('tskill ' + process_name) except Exception, e: killed = 0 return killed 

调用它:

 pkill("program_name") 

是的,你可以做到

 import os os.system("taskkill /f /im Your_Process_Name.exe") 
  1. / f:指定进程被强制终止。
  2. / im(ImageName):指定要终止的进程的映像名称。
  3. 有关TaskKill的更多信息

有一个很好的跨平台python实用程序psutil ,它可以在可以使用psutil.process_iter()列出的进程上公开kill()例程。

在另一个线程中已经有一个例子: https : //stackoverflow.com/a/4230226/4571444