Использование xprop
уже упоминалось в этом другом ответе и, вероятно, лучшее решение.
Другим способом может быть использование wmctrl -lp
списка всех окон, управляемых вашим оконным менеджером, вместе с их соответствующими идентификаторами процессов (PID), где это возможно:
$ wmctrl -lp
0x03a00002 0 1570 type40mark3 XdndCollectionWindowImp
0x03a00003 0 1570 type40mark3 unity-launcher
0x03a00004 0 1570 type40mark3 unity-panel
0x03a00005 0 1570 type40mark3 unity-dash
0x03a00006 0 1570 type40mark3 Hud
0x02c0000a -1 302 type40mark3 Desktop
0x08a00003 0 8861 type40mark3 18.04 - Easy way to get process from window - Ask Ubuntu - Mozilla Firefox
0x08a00033 0 8861 type40mark3 Some other site in a different window - Mozilla Firefox
0x0840b72c 0 20705 type40mark3 bytecommander@type40mark3: ~
0x08800001 0 7389 type40mark3 New Tab - Chromium
Затем вы можете использовать этот PID, чтобы получить больше информации о процессе, например ps aux -q YOUR_PID_HERE
:
$ ps aux -q 20705
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
bytecom+ 20705 0.0 0.2 676820 32268 ? Sl Jun28 1:58 /usr/lib/gnome-terminal/gnome-terminal-server
grep
на самом деле не является необходимым, вы можете дать имя свойства в качестве аргумента, чтобы показать только это, какxprop WM_CLASS
напрямую. Обратите внимание, что, в частностиWM_CLASS
, необязательно должно быть то же самое, что и исполняемый файл процесса, это может быть произвольное значение, установленное разработчиком.