56 votes

Est-il possible de tuer un processus sous Windows à partir de Python ?

J'utilise Python 2.6 . Il arrive que plusieurs instances d'un certain processus soient ouvertes et que ce processus cause lui-même des problèmes. Je veux pouvoir détecter par programme qu'il y a plusieurs instances de ce processus et les tuer.

Par exemple, dans certains cas, il y a peut-être 50 instances de make.exe ouvertes. Je veux être capable de dire qu'il y a 20 instances ouvertes, et de toutes les tuer. Comment cela est-il possible ?

70voto

Nix Points 22944

Je pense que vous pouvez utiliser exécution des tâches et le Python os.system()

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

Note : Je voudrais juste noter que vous pourriez avoir à qualifier complètement le chemin du taskkill. J'utilise une boîte Linux donc je ne peux pas tester...

32voto

Avinash Jeeva Points 345

Oui, vous pouvez le faire

import os
os.system("taskkill /f /im  Your_Process_Name.exe")
  1. /f : Spécifie que le ou les processus doivent être terminés de manière forcée.
  2. /im (Nom de l'image) : Spécifie le nom de l'image du processus à terminer. terminé.
  3. Pour plus d'informations sur TaskKill

10voto

Przemek108 Points 79

Il existe un bel utilitaire python multiplateforme psutil qui expose un tuer() sur un processus qui peut être listé avec psutil.process_iter().

Il y a déjà un exemple dans l'autre fil de discussion : https://stackoverflow.com/a/4230226/4571444

4voto

Drsn Points 11

Je pense que le code est comme ceci va fonctionner :

import os

def terminate(ProcessName):
    os.system('taskkill /IM "' + ProcessName + '" /F')

terminate('chrome.exe')

3voto

Giovanni Points 21

Que pensez-vous de ceci, je l'ai testé avec 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

l'appeler avec :

pkill("program_name")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X