Quero sair de um processo usando a linha de comando, mas não consigo recuperar o comando para procurar o ID do processo. Alguém sabe disso?
fonte
Quero sair de um processo usando a linha de comando, mas não consigo recuperar o comando para procurar o ID do processo. Alguém sabe disso?
O comando para descobrir a identificação de um processo (dado seu nome) é pidof
. No entanto, como sua intenção é interromper o processo, existem maneiras melhores / mais fáceis do que usar pidof
para encontrar seu pid primeiro:
Supondo que o processo que você deseja matar seja identificado exclusivamente por seu nome (ou você deseja matar todos os processos com esse nome), você não precisa conhecer o seu pid. Você pode simplesmente fazer killall processname
.
Se houver vários processos com o mesmo nome, mas você quiser matar apenas um deles, o uso pidof
não ajudará muito, pois fornecerá os pids, mas não fornecerá nenhuma informação para determinar qual dos pids pertence ao processo que você realmente deseja matar.
Nesse caso, você pode fazer o ps aux | grep processname
que mostrará todos os processos com o nome determinado, bem como o console em que estão sendo executados (se aplicável) e os argumentos com os quais foram chamados, o que, esperançosamente, permite identificar o processo que você está procurando .
Se o processo abriu qualquer X-windows, você também pode usar xkill
para matar (invoque xkill
e clique na janela).
Você deve dar uma olhada pgrep
e pkill
, dois utilitários muito úteis e poderosos encontrados na maioria dos sistemas Linux e UNIX.
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
Você pode executar ps -A
no terminal para mostrar todos os processos (com seu ID de processo) atualmente em execução.
grep
procurar o nome de um processo específico:ps -A | grep 'my name'
Eu também tive um problema semelhante. Eu usei
pstree -p
; isso me mostrou os processos em execução atuais, incluindo IDs de processo.fonte
pidof
. Problemaman pidof
para obter detalhes.fonte
O meu favorito é
pstree -p | grep $(program_name)
. Na verdade, isso acolhe o processo, destaca e mostra o pid entre parênteses.Meu próximo favorito (especialmente quando estiver programando e precisando de todos os pids do processo) é
pgrep -law ""
. Isso literalmente fornece a você todos os pid execução seguidos pelo aplicativo (com caminho absoluto).Isso pode ser reduzido
pgrep -lw ""
para pid seguido pelo nome do programa ou mesmo apenaspgrep -l
para todos os pidObviamente, você pode procurar um nome de programa específico (ou parte do programa). (ou seja
pgrep -lw firef
, provavelmente exibirá algo como "4567 firefox").fonte
pstree -psH $(pgrep prgram_name)
seria melhor para o primeiro caso?Esta resposta, do @Ben em uma pergunta duplicada , resolveu meu problema:
Considere usar o
top
comando no terminal.via man top
fonte