Bonjour,
Programme en ligne de commande permettant de gérer des processus.
Pour l'instant il ne fait que
exemple:
Tuer plusieurs processus:
python3 hackTest.py -kap 4884 11755
Tuera les PID 4884 et 11755
Lister tous les processus:
python3 hackTest.py -l
Listera tous les processus en donnant le PID et le nom du processus lié sous la forme PID -> nom du processus
Tuer un processus par nom:
python3 hackTest.py -kn bash
Tuera le processus dont le nom est bash
etc...
Toutes les options possibles:
-sn -> searchNameProcess name
-ka -> killAllProcesses names
-kn -> killNameProcess name
-kp -> killPID pid
-kap -> killAllProcesses pids
QUELLE VERSION PYTHON ?
Python 3.4
QUELLE LIBRAIRIE À TÉLÉCHARGER ?
Une seule, psutil
Pour Windows -> https://pypi.python.org/packages/3.4...efbef280a2b2b1
Pour Unix versions linux et mac (pas testé) ->
LE CODE
Si il y a des bugs, n'hésitez pas !
Bien sûr si vous voyez des améliorations dans la gestion de processus, dites-le, je modifierais et updaterais
Programme en ligne de commande permettant de gérer des processus.
Pour l'instant il ne fait que
- chercher des processus tournant actuellement sur votre OS
- retourner la liste de tous les processus tournant actuellement sur votre OS
- tuer un processus par
- PID
- nom du processus
- tuer plusieurs processus par
- PIDs
- noms de processus
exemple:
Tuer plusieurs processus:
python3 hackTest.py -kap 4884 11755
Tuera les PID 4884 et 11755
Lister tous les processus:
python3 hackTest.py -l
Listera tous les processus en donnant le PID et le nom du processus lié sous la forme PID -> nom du processus
Tuer un processus par nom:
python3 hackTest.py -kn bash
Tuera le processus dont le nom est bash
etc...
Toutes les options possibles:
-sn -> searchNameProcess name
-ka -> killAllProcesses names
-kn -> killNameProcess name
-kp -> killPID pid
-kap -> killAllProcesses pids
QUELLE VERSION PYTHON ?
Python 3.4
QUELLE LIBRAIRIE À TÉLÉCHARGER ?
Une seule, psutil
Pour Windows -> https://pypi.python.org/packages/3.4...efbef280a2b2b1
Pour Unix versions linux et mac (pas testé) ->
- curl -O https://raw.github.com/pypa/pip/mast...rib/get-pip.py
- sudo python3 get-pip.py
- sudo pip3 install psutil
LE CODE
Code:
import psutil import sys OPTIONS = { '-kn': 'killNameProcess name', '-kp': 'killPID pid', '-ka': 'killAllProcesses names', '-sn': 'searchNameProcess name', '-kap': 'killAllProcesses pids' } class KillProcessError(Exception): pass class Process: def __init__(self, pid): self.pid = pid self.p = psutil.Process(pid) self.name = self.p.name() self.user = self.p.username() self.status = self.p.status() def killProcess(self): """kill the process""" try: self.p.kill() except: raise KillProcessError("Bad user: use {}".format(self.user)) def __str__(self): """information PID and name of process""" return "{pid} -> {name}".format(pid=self.pid, name=self.name) class Processes: def __init__(self): self.list = [Process(pid) for pid in psutil.get_pid_list()] def killPID(self, pid): """search and kill PID""" for p in self.list: if p.pid == pid: p.killProcess() print("Process {} killed !".format(p.name)) break def killNameProcess(self, name): """search and kill all process with name""" if self.list: for p in self.list: if p.name == name: p.killProcess() print("Process {} killed !".format(p.name)) def searchNameProcess(self, name): """search processes with pattern name""" self.search = [] for p in self.list: if p.name.lower().find(name) != -1: yield str(p) def __str__(self): """list all processes""" return '\n'.join([str(p) for p in self.list]) def parseLineCommand(): command = sys.argv option, process = None, tuple() if len(command) == 2: option = command[1] elif len(command) > 2: option, *process = command[1:] return option, process def main(): opt, proc = parseLineCommand() listOfProcess = Processes() if opt == '-l': print(listOfProcess) elif opt == '-kp' and proc: pid = int(proc[0]) listOfProcess.killPID(pid) elif opt == '-kn' and proc: name = ' '.join(proc) listOfProcess.killNameProcess(name) elif opt == '-ka' and proc: for name in proc: listOfProcess.killNameProcess(name) elif opt == '-sn' and proc: name = proc[0] res = listOfProcess.searchNameProcess(name) print('\n'.join(res)) elif opt == '-kap' and proc: for pid in proc: p = int(pid) listOfProcess.killPID(p) else: print("USE OPTIONS: ") for opt in OPTIONS: print("{0} -> {1}".format(opt, OPTIONS[opt])) main()
Bien sûr si vous voyez des améliorations dans la gestion de processus, dites-le, je modifierais et updaterais
Commentaire