J'essaie de tuer un processus (en particulier iChat). Sur la ligne de commande, j'utilise ces commandes:
ps -A | grep iChat
Ensuite:
kill -9 PID
Cependant, je ne sais pas exactement comment traduire ces commandes en Python.
J'essaie de tuer un processus (en particulier iChat). Sur la ligne de commande, j'utilise ces commandes:
ps -A | grep iChat
Ensuite:
kill -9 PID
Cependant, je ne sais pas exactement comment traduire ces commandes en Python.
psutil peut trouver un processus par son nom et le tuer:
import psutil
PROCNAME = "python.exe"
for proc in psutil.process_iter():
if proc.name() == PROCNAME:
proc.kill()
En supposant que vous êtes sur un Unix-like plate-forme (de sorte que l' ps -A
existe),
>>> import subprocess, signal
>>> p = subprocess.Popen(['ps', '-A'], stdout=subprocess.PIPE)
>>> out, err = p.communicate()
vous donne ps -A
s'sortie en out
variable (une chaîne). Vous pouvez le décomposer en lignes et en boucle sur eux...:
>>> for line in out.splitlines():
... if 'iChat' in line:
... pid = int(line.split(None, 1)[0])
... os.kill(pid, signal.SIGKILL)
...
(vous pourriez éviter d'importer signal
, et l'utilisation 9
au lieu de signal.SIGKILL
, mais je n'aime pas particulièrement ce style, donc j'aurais plutôt utilisé la constante nommée de cette façon).
Bien sûr, vous pourriez faire beaucoup plus sophistiqués de traitement sur ces lignes, mais ce n'imite ce que vous faites dans le shell.
Si ce que vous êtes après, c'est éviter d' ps
, c'est difficile à faire à travers les différents systèmes de type Unix (ps
est leur API commune pour obtenir une liste des processus, en un sens). Mais si vous avez un spécifique de système de type Unix à l'esprit, seulement (ne nécessitant pas une croix-plate-forme de portabilité), il peut être possible; en particulier, sur Linux, l' /proc
pseudo-système de fichiers est très utile. Mais vous aurez besoin de clarifier exactement à vos exigences avant de pouvoir nous aider sur cette dernière partie.
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.