Qual é o comando do terminal para descobrir o id de um processo

10

Eu quero sair de um processo usando a linha de comando, mas não consigo me lembrar do comando para procurar o ID do processo. Alguém sabe disso?

    
por jumpnett 14.10.2010 / 18:19

7 respostas

13

O comando para descobrir o ID de um processo (dado seu nome) é pidof . No entanto, desde que sua intenção é matar o processo, existem maneiras melhores / mais fáceis do que usar pidof para encontrar seu pid primeiro:

Assumindo que o processo que você quer matar é identificado exclusivamente pelo seu nome (ou você quer matar todos os processos com esse nome), você não precisa saber o seu pid. Você pode simplesmente fazer killall processname .

Se houver vários processos com o mesmo nome, mas você só quiser matar um deles, usar pidof não ajudará muito, porque ele fornecerá os pids, mas não lhe dará nenhum informações para determinar qual dos pids pertence ao processo que você realmente deseja matar.

Nesse caso, você pode fazer ps aux | grep processname , que mostrará todos os processos com o nome dado, bem como o console em que estão sendo executados (se aplicável) e os argumentos com os quais foram invocados, o que lhe permite identificar processo que você está procurando.

Se o processo abrir qualquer X-windows, você também pode usar xkill para matar (invocar xkill e depois clicar na janela).

    
por sepp2k 14.10.2010 / 18:40
7

Você deve dar uma olhada em pgrep e pkill , dois utilitários muito úteis e poderosos que são encontrados na maioria dos sistemas Linux e UNIX.

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
    
por sajb 14.10.2010 / 18:51
4

Você pode executar ps -A no terminal para mostrar todos os processos (com seus IDs de processo) que estão em execução no momento.

    
por TheXed 14.10.2010 / 18:24
2

Eu também tive um problema semelhante. Eu usei pstree -p ; isso me mostrou os processos atuais em execução, incluindo IDs de processo.

    
por Meintjes 25.04.2013 / 13:48
1

pidof . Emita man pidof para detalhes.

    
por mgunes 14.10.2010 / 18:21
1

Meu favorito é pstree -p | grep $(program_name) . Isso realmente aumenta o processo, destaca e mostra o pid entre parênteses.

Meu próximo favorito (especialmente quando estou programando e precisando de todos os pids do processo) é pgrep -law "" . Isso literalmente dá a você todo pid executando seguido pelo aplicativo (com caminho absoluto).

Isso pode ser reduzido para pgrep -lw "" para o pid seguido pelo nome do programa ou mesmo apenas pgrep -l para todos os pids

Claro, você pode procurar por um nome específico de programa (ou parte de um programa). (por exemplo, pgrep -lw firef provavelmente exibirá algo como "4567 firefox").

    
por dylnmc 18.09.2014 / 23:12
0

Esta resposta, da @Ben numa pergunta duplicada , resolveu o meu problema:

Considere o uso do comando top no terminal.

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

via topo do homem

    
por Gui Imamura 08.01.2015 / 20:52