Використання 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 - це графічна утиліта, яка відображає різну інформацію про Windows та їх властивості, включаючи 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
дуже приємно ...