Aceasta este o identificare în 2 pași a ferestrelor tale misterioase.
Identificarea 1a
Puteți deschide un terminal și utilizați
$ xwininfo
care vă va solicita să selectați fereastra despre care doriți să obțineți informații.
Odată ce aveți ID-ul ferestrei WIN_ID
(printre alte informații), puteți obține mai multe informații cu alte steaguri sau cu wmctrl
, vedea Identificare 1b de mai jos.
În special, este posibil să doriți să obțineți ID-ul procesului.
Dacă wmctrl
nu funcționează pentru asta, puteți încerca să obțineți PID
din WIN_ID
cu
$ xprop -id <WIN_ID> | grep _NET_WM_PID (sau pur și simplu...)
$ xprop -id <WIN_ID> _NET_WM_PID
Daca tu nu grep
ai putea obtine alte informatii interesante.
Din experiența mea, acest lucru nu vă oferă întotdeauna rezultate pozitive.
Vezi si Identificare 2 de mai jos.
Legate de:
- https://unix.stackexchange.com/a/84981/137608
- https://stackoverflow.com/questions/1131277/how-to-convert-a-x11-window-id-to-a-process-id
- Spune-i unui proces PID după fereastra lui?
- https://ubuntuforums.org/archive/index.php/t-1124561.html
Identificare 1b
Ca alternativă (probabil mai ușor de utilizat, dar în cazul tău pare că nu funcționează),
ai putea deschide un terminal și ai folosi
$ wmctrl -l -p -x
pentru a lista toate ferestrele gestionate de managerul de ferestre curent
(ai putea verifica cu wmctrl -m
sau env | grep -i desktop
, și ar fi util să postezi acea ieșire în OP).
Din wmctrl --help
:
Formatul listei de ferestre:
<ID fereastră> <ID desktop> <mașină client> <titlul ferestrei>
Acesta este formatul de bază, obținut cu -l
. Opțiuni -p
și -X
adăugați coloane suplimentare.
Coloanele 1 (ID numeric al ferestrei, din opțiunea de bază -l
), 3 (nr. PID, din opțiune -p
), 4 (WM_CLASS
, din opțiune -X
) și 5 (titlul ferestrei, din opțiunea de bază -l
) din ieșire va fi cel mai util.
Apoi, ai putea folosi
$ wmctrl -a <WIN>
cu fiecare dintre ferestrele enumerate,
la „Activați fereastra trecând la desktopul său și ridicând-o” (bifați ).
În acest fel, ai putea identifica ferestrele tale misterioase.
Cât despre <WIN>
: „Acest argument specifică fereastra. În mod implicit, este interpretat ca un șir. Șirul este potrivit cu titlurile ferestrelor și este folosită prima fereastră de potrivire. Potrivirea nu face distincție între majuscule și minuscule și șirul poate apărea în orice poziție a titlului ."
Deci ai fi în mare parte ok să folosești pentru <WIN>
orice subșir al coloanei 5 de mai sus, de exemplu, wmctrl -a „Firefox”
.
Este posibil să fie nevoie să scăpați în mod corespunzător de șir.
Alternativ, ai putea folosi
$ wmctrl -a <nr. hex fereastră> -i
cu coloana 1 de mai sus (care evită orice posibilă ambiguitate cu potrivirea șirurilor de caractere a titlului ferestrei), sau
$ wmctrl -a <WM_CLASS> -x
cu coloana 4 de mai sus.
Ați putea schimba cu alte opțiuni amuzante și utile, ca -R
sau -G
.
Identificare 2
Cu pidno
din fiecare fereastră țintă, ați putea folosi
$ ps -ef | grep <pidno>
$ pwdx <pidno>
$ pidstat -p <pidno>
$ ls /proc/<pidno>
$ cat /proc/<pidno>/<fișier>
pentru o identificare ulterioară.
Ai putea vedea cu ls
peste ceea ce ai putea folosi <file>
, de exemplu., stare
sau cmdline
.
Surse:
- Cum să vezi informații detaliate despre un anumit PID?
- https://superuser.com/questions/632979/if-i-know-the-pid-number-of-a-process-how-can-i-get-its-name