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

cup*_*pof 38 python windows windows-xp

我正在使用Python 2.6.有时某个过程会打开几个实例,而这个过程本身就会产生一些问题.我希望能够以编程方式检测到该进程有多个实例并将其杀死.

例如,在某些情况下,可能会打开50个make.exe实例.我希望能够告诉你有20个实例打开,并将它们全部杀掉.这是如何完成的?

Nix*_*Nix 48

我认为你可以使用taskkill和Python os.system()

import os
os.system("taskkill /im make.exe")
Run Code Online (Sandbox Code Playgroud)

注意:我会注意到您可能必须完全限定taskkill路径.我正在使用Linux盒子,所以我无法测试......

  • 您可以使用`os.popen('tasklist').readlines()`来获取当前正在执行的进程列表,从而可以计算您要查找的进程的实例数量,并将其用于确定是否该杀死所有人.`subprocess.Popen()`的用法有点复杂,但从Python 2.6开始,不推荐使用`os.popen()`,所以要记住这一点.有关如何将`subprocess.Popen()`用于同一类任务,请参见http://stackoverflow.com/questions/3215262/monitor-process-in-python/3215404#3215404. (4认同)

Avi*_*eva 12

是的,你可以做到

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


小智 9

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

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