É possível filtrar top para mostrar processos específicos?

10

Estou no topo e quero sempre ver java / tomcat / redis / mysql / mongo, isso é possível?

Blankman
fonte

Respostas:

16

Você poderia algo assim

top -p `pgrep -d ',' "java|tomcat|redis|mysql|mongo"`

Isso pgrepproduz uma lista separada por vírgula de pid's que são passados ​​paratop -p

Iain
fonte
Muito :) mais simples
Mircea Vutcovici
Eu estava lutando para descobrir como encontrar a lista de processos para vários nomes de processos até ver como você fez isso.
user9517
1
Uma observação para os futuros espectadores - esse método pode não fornecer os dados que você espera. a) esse método mostra apenas os processos em execução quando o início é iniciado . O comportamento normal de Top é mostrar processos novos desde o início. b) o manual superior que li diz que -p está limitado a 20 identificações de processo. Veja: stackoverflow.com/questions/12075591/…
MaasSql 1/16/16
1
Após executar top -c, pressione oe escreva um filtro em uma coluna, por exemplo, para mostrar as linhas em que a coluna COMMAND contém a string foo, escreva COMMAND = foo
MaasSql
6

Não é exatamente o que você está procurando, mas às vezes um processo é executado por seu próprio usuário, como o apache2 geralmente é executado pelo usuário www-data.

Você pode usar isso para limitar a saída do topo apenas aos processos desse usuário, mostrando efetivamente apenas os processos apache2 usando este comando:

top -u www-data
DanMan
fonte
Ótimo! Eu queria saber como a processos específicos da lista de usuários
razor7
4

Confira a página de manual do manual superior para obter mais detalhes sobre o utilitário principal ...

Semms você precisa do parâmetro -p

-p: monitora PIDs como: -pN1 -pN2 ... ou -pN1, N2 [, ...]

        Monitor only processes with specified process  IDs.   This  option
        can  be given up to 20 times, or you can provide a comma delimited
        list  with  up  to  20  pids.   Co-mingling  both  approaches   is
        permitted.
Sergey
fonte
4

Tente o seguinte:

alias mytop='echo $(sed "s/\([0-9]*\)/-p \1/g;s/^/top /" <(pgrep -d" " "java|redis|mysql|mongo"))'
mytop
Mircea Vutcovici
fonte