Como posso descobrir qual aplicativo está em execução (nome real, nome não publicado)?

0

Acabei de passar pelo longo e maciço processo desta manhã de tentar identificar um aplicativo em execução. Foi com o objetivo de relatar um bug esta manhã, mas acabei postando uma pergunta sobre isso ao AskUbuntu.

Eu encontrei a resposta dessa vez.

Eu tentei iniciar gnome-system-monitor (nome publicado: "System Monitor"), mas não consegui descobrir qual era o aplicativo que estava procurando.

Eu tentei acessar o menu do aplicativo > Sobre, mas não mostra o nome real da aplicação lá. Aqui está uma captura de tela de gnome-software > About, que mostra apenas o nome publicado do "Ubuntu Software".

Eufizumapesquisanawebpor"software ubuntu" para ver se algum resultado da pesquisa mostrava o nome do aplicativo. Eu encontrei uma página da Wikipedia que diz "O desenvolvimento foi finalizado em 2015 e no Ubuntu 16.04 LTS foi substituído pelo GNOME Software" . Eu segui o link para o GNOME Software , mas o nome da aplicação também não foi mostrado.

Portanto, eu não pude reportar o bug, então eu vim para o AskUbuntu. Eu fiz uma busca por "software ubuntu" e vi o nome "gnome-software" em algum lugar.

Eu abri um terminal, usei o comando gnome-software e o aplicativo correto foi iniciado.

Acabei fazendo uma pergunta no AskUbuntu em vez de reportar o bug. No entanto, tive esse mesmo problema muitas vezes nos últimos 10 anos, e gostaria de resolvê-lo de uma vez por todas.

Existe uma maneira rápida e fácil de identificar o nome real de um aplicativo em execução no momento?

PS Esta questão foi identificada como uma duplicata "Esta questão já tem uma resposta aqui: Como eu determino o nome do processo de um aplicativo? 1 resposta " , que efetivamente responde "Não" à minha pergunta "Existe uma maneira rápida e fácil de identificar o nome real de um aplicativo em execução no momento?", mas na verdade a resposta que recebi do @waltinator parece para fornecer um método (via comando xprop ).

    
por el_gallo_azul 08.10.2016 / 02:59

3 respostas

1

Use xwininfo (consulte man xwininfo ), no pacote x11-utils . Para demonstrar, executei xwininfo -all em uma janela de terminal e, após o aviso, cliquei nessa janela. A primeira parte do que foi dito é:

$ xwininfo -all

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x4600007 "unity - How can I find out what app is running (actual name, not published name)? - Ask Ubuntu"

  Root window id: 0x7d (the root window) "QupZilla"
  Parent window id: 0x2403a37 (has no name)
     1 child:
     0x4600008 (has no name): ()  1x1+-1+-1  +65+51

  Absolute upper-left X:  66
  Absolute upper-left Y:  52
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1696
  Height: 1148
  Depth: 24
...

Também há xlsclients e xprop (veja o man page ) que podem ser úteis.

    
por waltinator 08.10.2016 / 07:22
1

Tente

grep -i "access prompt" /usr/share/applications/*.desktop
/usr/share/applications/gcr-prompter.desktop:Name=Access Prompt

Neste exemplo, o nome "comum" do aplicativo é Access Prompt e o nome exibido na saída de algo como ps -o pid,ppid,stime,time,command -u $USER is gcr-prompter .

Esta abordagem tem duas limitações:
  - ele só procura em /usr/share/applications (porque é onde a maioria dos arquivos .desktop são encontrados). Mas alguns arquivos .desktop podem estar apenas em ~/.local/share/applications .
  - dependendo de como você define um "aplicativo", alguns aplicativos podem não ter um arquivo .desktop. Nesses casos, o nome "comum" e o nome real do aplicativo serão os mesmos.

    
por DK Bose 08.10.2016 / 03:33
1

Até onde eu sei, não há uma maneira padrão de fazer isso.

Na linha de comando, você pode usar xprop para obter informações sobre uma janela (o cursor mudará e você deverá clicar na janela).

A saída geralmente tem uma linha começando com _NET_WM_PID que contém o PID do programa e você pode usar, por exemplo,

ps -o comm -p THE_PID

para encontrar o comando do programa.

Você pode colocar tudo isso junto em um script de shell e usar zenity para uma exibição gráfica:

#!/bin/sh
zenity --info --text "$(ps --no-headers -o comm -p $(xprop | awk '/^_NET_WM_PID/ {print $3}'))"

Salve isso em algum lugar como um arquivo, torne-o executável e atribua uma tecla de atalho para ele.

Eu acho que há alguns casos em que não funciona ou exibe um resultado errado, mas geralmente deve ser pelo menos útil.

    
por Florian Diesch 08.10.2016 / 03:44