Usando xdotool
Primeiro verifique se xdotool
está disponível no seu sistema:
sudo apt-get install xdotool
O comando a seguir imprimirá o nome do processo da janela atualmente em foco:
cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
Para ter mais tempo para focar a janela / clicar nela, você pode preceder uma pequena duração do sono:
sleep 5 && cat "/proc/$(xdotool getwindowpid "$(xdotool getwindowfocus)")/comm"
O nome do processo deve ser exibido após um curto período de tempo.
Usando wininfo
O Wininfo é um utilitário gráfico que exibe várias informações nas janelas e suas propriedades, incluindo o PID (ID do processo) associado à janela:
wininfo
deve estar disponível nos repositórios oficiais:
sudo apt-get install wininfo
Após determinar o PID da janela, você pode procurar o nome do processo associado a ele. Existem várias maneiras de fazer isso, por exemplo, observando /proc
:
$ cat /proc/17002/comm
gnome-terminal
Esse seria o nome do processo associado ao PID 17002
.
Uma maneira mais elegante que permite inspecionar o contexto da árvore de processos, conforme sugerido por @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
Obviamente, você também pode combinar pstree
com a xdotool
opção acima (obrigado a @ rubo77 por apontar isso!):
sleep 2; pstree -spaul $(xdotool getwindowpid "$(xdotool getwindowfocus)")
Fontes:
/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
que é bastante bom ...