Existem opções relativamente simples com top para rastrear um processo específico?
Idealmente, identificando o processo por um valor legível por humanos? por exemplo chrome
ou java
.
Em outras palavras, quero visualizar todas as informações típicas que o topo fornece, mas para que os resultados sejam filtrados para os parâmetros fornecidos, ou seja. 'chrome' ou 'java'
top | grep chrome
?ps -x | chrome
para obter pid (deixe o pid mostrado2034
) e então #top | grep 2034
top | grep chrome
funcionou perfeitamente - obrigado!ps -x | process_name
o PID, quando eu executava o processo novamente, o PID era diferente e, portanto, o o PID original não o identificaria.Respostas:
Você pode simplesmente usar
grep
:Execute o seguinte comando para obter a saída desejada (ex-chrome):
Aqui estamos usando
grep
com pipelines|
paratop
&grep
run paralelamente;top
saída fornecida paragrep
(como entrada) egrep chrome
filtra as linhas correspondenteschrome
atétop
parar.fonte
top
apenas com o OP e o filtro deseja filtrar o processo com basetop
.sleep 10 & top | grep sleep
Da minha outra resposta aqui , você poderia fazer algo como,
fonte
top -p `pgrep "java"`
dá-me o seguinte erro em um shell bashtop: -p requires argument
. top -ppgrep -d ',' "apache2"
funcionou para mim, mas eu realmente não entendi o que o comando estava fazendo - é uma maneira de alimentar vários argumentos para o topo?pid
lista separada por vírgula para funcionar.Explicação:
top -p pid1,pid2
: mostre várias informações do processo, o pid deve ser separado por,
pgrep -d "," java
: imprime os pids de todos os programas java; os pids são separados por uma nova linha por padrão. use o-d ","
para separá-lo,
conforme exigido pela parte superior.Se você
top: -p argument missing
vir um erro semelhante , significa que nenhum programa java está sendo executado, ou seja, o pgrep não possui saída.fonte
top -p
pgrep "java" `` `. obrigado.pgrep
o código de saída:pids="$(pgrep -d, java)" && top -p "$pids"
No OpenBSD
top
, basta pressionar ge digitar o nome do comando que você deseja filtrar.No
top
Ubuntu, por exemplo, pressione oe digite egCOMMAND=chrome
para mostrar apenas as entradas daCOMMAND
coluna que são iguais achrome
.Nos Linux que usam a mesma
top
implementação que o Ubuntu, leia a seção FILTRANDO em uma Janela notop
manual.fonte
Outras boas respostas foram fornecidas, mas fiz um script há algum tempo, que chamei de ptop, que me serve bem:
Isso suporta vários nomes de processos a serem especificados (como
ptop bash chrome
) e fornece uma mensagem de erro melhor caso não exista / não haja processos com nenhum dos nomes especificados em execução.fonte
Se você deseja permanecer
top
e manter todos os outros processos à vista para o contexto, pressioneL
para pesquisar por seu processo:Isso destacará qualquer processo com
chrome
o nome e o exibirá . Use&
para ir para a próxima partida.Você pode pressionar
c
para alternar entre mostrar o nome do processo e o comando completo.fonte
man top | less +/5d
Você também pode usar um filtro na parte superior para isolar processos específicos. Pressione 'O' para exibir o prompt do filtro. Em seguida, digite um filtro formatado como FIELD = value. Por exemplo, para filtrar todos os processos tmux, use:
Use '=' para redefinir os filtros. Veja a seção intitulada 'FILTRANDO' na página principal.
fonte