Menu Fermer

Linux : déterminer le PID d’un processus à partir de sa fenêtre (sous X11)

Sur Linux, il arrive parfois que l’on peut avoir besoin de récupérer le PID d’un processus à partir d’une fenêtre active sur X11. Par exemple, la fenêtre ne répond plus et vous souhaitez utiliser la commande kill pour arrêter le processus.

Dans ce tutoriel, je vous donne deux méthodes avec xprop et wmctrl pour trouver le processus à partir d’une fenêtre dans Linux.

Linux : déterminer le PID d'un processus à partir de sa fenêtre (sous X11)

Comment trouver le d’un processus à partir de sa fenêtre sur Linux

avec xprop (Méthode 1)

L’utilitaire xprop permet d’afficher les propriétés des fenêtres et des polices dans un serveur X en cliquant simplement dessus.
On peut récupérer toutes sortes d’informations et notamment le PID.

  • Depuis un terminal, passez la commande suivante :
xprop | sed -nre 's/(WM_NAME\(STRING\)|_NET_WM_PID\(CARDINAL\)) =(.*)/\2/p'
  • Puis cliquez sur la fenêtre en question.
  • Le titre et le PID du processus lié à la fenêtre s’affiche
Comment trouver le d'un processus à partir de sa fenêtre sur Linux avec xprop

Voici une autre variante de la commande qui renvoie aussi les informations du processus via l’utilitaire ps :

 xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`

Enfin, plus simple pour retourner que le PID du processus d’une fenêtre :

xprop | awk '/PID/ {print $3}'

Comme la commande n’est pas simple à retenir, vous pouvez créer un alias.
Pour cela :

  • Éditez le fichier ~/.bashrc avec votre éditeur de texte favoris
  • Ajoutez l’alias suivant :
alias pf='xprop | sed -nre "s/(WM_NAME(STRING)|_NET_WM_PID(CARDINAL)) =(.*)/\2/p"'
  • Ouvrez un nouveau terminal, dorénavant utilisez la commande pf pour récupérer le PID d’une fenêtre

avec wmctrl (Méthode 2)

wmctrl est une commande qui peut être utilisée pour interagir avec un gestionnaire de fenêtres X compatible avec la spécification EWMH/NetWM. wmctrl peut demander des informations au gestionnaire de fenêtres et demander que certaines actions de gestion de fenêtres soient effectuées.
On peut très facilement récupérer des informations d’une fenêtre active.

L’utilitaire n’est pas installée par défaut, vous devez donc l’installer avec le gestionnaire de paquets de votre distributions Linux. Par exemple avec APT :

sudo apt install wmctrl

Puis utilisez les options -l (Liste des fenêtres gérées par le gestionnaire de fenêtres et -p (pour obtenir le PID)

wmctrl -lp

La première colonne contient toujours l’identité de la fenêtre sous la forme d’un entier hexadécimal, et la deuxième colonne contient toujours le numéro du bureau (un -1 est utilisé pour identifier une fenêtre collante).
Puis le PID, nom de l’ordinateur et le titre de la fenêtre s’affiche.

Comment trouver le d'un processus à partir de sa fenêtre sur Linux avec wmctrl