我正在使用Python 2.6 。 有时会出现一些开放的过程,而这个过程本身就会带来一些问题。 我希望能够以编程方式检测该进程有多个实例并杀死它们。
例如,在某些情况下可能有50个make.exe实例打开。 我想知道有20个实例是打开的,并且全部杀死它们。 这是如何完成的?
我想你可以使用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")
有一个很好的跨平台python实用程序psutil ,它可以在可以使用psutil.process_iter()列出的进程上公开kill()例程。
在另一个线程中已经有一个例子: https : //stackoverflow.com/a/4230226/4571444