Использование xdotool
Сначала убедитесь, что xdotool
в вашей системе есть:
sudo apt-get install xdotool
Следующая команда выведет имя процесса окна, которое в данный момент находится в фокусе:
cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
Чтобы дать себе больше времени, чтобы сфокусировать окно / щелкнуть по нему, вы можете добавить небольшую продолжительность сна:
sleep 5 && cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
Имя процесса должно отображаться через короткое время.
Использование wininfo
Wininfo - графическая утилита, которая отображает различную информацию об окнах и их свойствах, включая PID (идентификатор процесса), связанный с окном:
wininfo
должны быть доступны в официальных репозиториях:
sudo apt-get install wininfo
Определив PID окна, вы можете найти имя процесса, связанного с ним. Есть несколько способов сделать это, например, посмотрев на /proc
:
$ cat /proc/17002/comm
gnome-terminal
Это будет имя процесса, связанного с PID 17002
.
Более элегантный способ, который позволяет проверять контекст дерева процессов, как предлагает @Rmano :
$ pstree -a -s -l -p -u 17002
init,1
└─lightdm,1900
└─lightdm,3202 --session-child 12 19
└─lxsession,3307,glutanimate -s LXDE -e LXDE
└─openbox,3362 --config-file /home/glutanimate/.config/openbox/lxde-rc.xml
└─gnome-terminal,17002
├─bash,1841
├─bash,2332
├─bash,2424
│ └─pstree,2484 -a -s -l -p -u 17002
├─gnome-pty-helpe,1840
├─{gnome-terminal},1835
├─{gnome-terminal},1836
├─{gnome-terminal},1842
└─{gnome-terminal},2269
Конечно, вы также можете комбинировать pstree
с xdotool
опцией выше (спасибо @ rubo77 за указание на это!):
sleep 2; pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
Источники:
/unix//q/38867/29245
http://www.linuxquestions.org/questions/debian-26/how-to-find-the-process-associated-with-a-top-level-x-window-907125/
/superuser//q/632979/170160
pstree -a -s -l -p -u $PID
что очень приятно ...