Diga a um processo PID por sua janela?

54

Como posso dizer o nome de uma imagem de processo (para executar a partir do terminal usando sudo) exibida na interface do usuário do Ubuntu?

Ted
fonte
11
Dê uma olhada aqui: stackoverflow.com/questions/2041532/…
sulaweyo 16/05

Respostas:

57

De acordo com sua solicitação na outra pergunta, aqui está minha resposta novamente:

Tenho certeza de que existe uma maneira mais limpa de fazê-lo, mas para sua segunda pergunta, você pode tentar o seguinte:

   xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' | ps `cat`

Isso fará do seu cursor uma cruz com a qual você pode clicar em uma janela aberta. Ele informará o PID e o comando no terminal em que o executou.

Em geral, xprop e xwininfo fornecerão muitas informações sobre uma janela aberta.

Os "apóstrofes" que eu usei para o gato ao redor são a tecla ~ no meu teclado sem pressionar Shift. Isso deve lhe dar mais algumas informações sobre o assunto:

Acentos graves e citação retroativa

Ágil
fonte
xprop diz: _NET_WM_PID: não encontrado. Este método não é infalível suficiente ...
Calmarius
5
Isto é mais fácil de lembrar: xprop | grep PID(embora só imprime a identificação do processo)
KajMagnus
Essa resposta me lembrou que eu já tinha um miniaplicativo de canela fazendo exatamente isso na minha barra de tarefas, do qual havia esquecido totalmente. Uau. Obrigado por isso, pelo menos!
Fabian Röling
16

Você pode tentar xprop | grep WM_CLASSe clicar na janela em que está interessado.

Exemplos:

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gedit", "Gedit"

#> xprop | grep WM_CLASS
WM_CLASS(STRING) = "gcalctool", "Gcalctool"
Avio
fonte
9

Execute este comando em um terminal:

xprop | awk '/PID/ {print $3}'

O ponteiro do mouse será substituído por uma mira; selecione a janela em que está interessado.

Este método mostra apenas o PID do processo que possui essa janela (que parece ser o que você deseja).

totti
fonte
2

Você pode obter informações do processo usando:

$ ps -f --pid $(xprop _NET_WM_PID | grep -o '[0-9]*')
Wernight
fonte
0

Executar xprop | awk '/_NET_WM_PID\(CARDINAL\)/{print $NF}'e clicar na janela da qual você deseja o PID imprimirá o PID no terminal.

ScottKu
fonte