Comment peut-on le faire en utilisant Python dans Ubuntu ?
Réponses
Trop de publicités?psutil
semble être ce que vous voulez.
Ce qui n'est pas clair dans votre question est de savoir si vous voulez le nom de l'exécutable ou le titre de la fenêtre. Cependant, si vous cherchez le nom du processus exécutable, vous pouvez le faire avec psutil
et quelques autres fonctions.
Tout d'abord, installez psutil
con pip
(Python 2) ou pip3
(Python 3). Si la commande n'est pas trouvée, installez la commande python-pip
o python3-pip
en fonction de la version de Python avec laquelle vous travaillez :
# Python 2
sudo pip install psutil
# Python 3
sudo pip3 install psutil
Ensuite, nous pouvons utiliser psutil
dans un script Python donné, et passer un PID. Voici un exemple de ce qu'il peut faire, en exécutant python3
dans la ligne de commande, en travaillant avec le Shell interactif de Python 3, et en obtenant les informations de ce processus en utilisant du code Python directement sur le Shell de Python :
>>> import psutil
>>> import os
>>> os.getpid()
6284
>>> p = psutil.Process(os.getpid())
>>> p.name()
'python3'
>>> p.exe()
'/usr/bin/python3.5'
>>> p.cmdline()
['python3']
>>>
Comme vous pouvez le constater, ces utilitaires vous permettent d'obtenir du système différentes informations sur le processus, que ce soit sous Windows ou sous Linux, bien que vous deviez d'abord installer le paquet Python.
EDIT
Nous pouvons également enchaîner avec Jacob Vlijm Ici aussi, la réponse de l'entreprise est de récupérer le PID et de le transmettre à psutil
(Notez que j'ai raccourci "subprocess" en "sp" dans mon importation, mais il s'agit toujours de la même chose). subprocess
) :
import psutil
import subprocess as sp
p = psutil.Process(int(sp.check_output(["xdotool", "getactivewindow", "getwindowpid"]).decode("utf-8").strip()))
... et ensuite continuer à utiliser psutil
pour extraire des données spécifiques.
Réponse courte
import subprocess
pid = subprocess.check_output(["xdotool", "getactivewindow", "getwindowpid"]).decode("utf-8").strip()
print(pid)
mais vous devrez installer xdotool
:
sudo apt install xdotool
Obtenir le nom de la WM_CLASS
On peut même dépasser le pid :
#!/usr/bin/env python3
import subprocess
w_id = subprocess.check_output(["xdotool", "getactivewindow"]).decode("utf-8")
name = subprocess.check_output(["xprop", "-id", w_id, "WM_CLASS"]).decode("utf-8").strip()
print(name)
N'oubliez pas que la WM_CLASS est souvent, mais pas nécessairement toujours, le processus. nom .