Dans un onglet d'un émulateur de terminal (lxterminal) sur Lubuntu 18.04, j'essaie de trouver son identifiant de fenêtre en cliquant au même endroit (où le shell est affiché) à l'intérieur de l'onglet, soit par xwininfo
$ xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'
31457283
ou par xdotool
$ xdotool selectwindow
35652689
Pourquoi xwininfo
et xdotool
me donnent-ils des identifiants de fenêtre différents?
Par conséquent, les différents identifiants de fenêtre mènent à différents identifiants de processus:
$ xdotool getwindowpid 31457283
1480
$ ps aux | grep -i 1480
t 1480 0.1 0.3 473204 31240 ? Sl Nov21 23:18 lxterminal
$ xdotool selectwindow getwindowpid
window 35652689 has no pid associated with it.
Le problème de différents identifiants de fenêtre ne se situe pas seulement dans un onglet de lxterminal, mais également dans un onglet firefox, ou dans une fenêtre de evince. Je n'ai pas trouvé d'application en cliquant dans la fenêtre de laquelle les deux manières donnent le même ID de fenêtre.
Ce sont deux choses différentes.
xdotool selectwindow
et xwininfo -int
xdotool selectwindow getwindowpid
et xprop | grep _NET_WM_PID
(si vous avez le propriétés de la fenêtre supplémentaire de XOrg )L'ID de processus est l'identifiant de processus du noyau et est utilisé pour des tâches telles que la suppression du processus, la planification de la tâche, etc.
L'identifiant de la fenêtre est l'identifiant de la fenêtre du serveur Window. Un processus peut générer n’importe quel nombre de Windows et fréquemment, il en génère plusieurs. Pensez au nombre de dialogues que GIMP a en libre accès sur tout l’écran.
Dans ce cas, l'ID de processus ne fait que combiner la question, mais si vous ciblez la même fenêtre que pour une cible unique, vous devriez obtenir le même résultat pour
xdotool selectwindow
xwininfo -int
Exécutez les deux sur la même ligne, double-cliquez et voyez ce qu'ils disent tous les deux:
xwininfo -int | grep -Po '(?<=Window id: )[0-9a-zA-Z]+'; xdotool selectwindow;
J'ai installé lxterminal
et confirmé que tout ce que vous voyez est unique. Je ne peux pas reproduire.