Como visualizar um processo específico no topo

35

Existe alguma opção relativamente direta com o topo para rastrear um processo específico?
Idealmente, identificando o processo por um valor legível humano? por exemplo. chrome ou java .

Em outras palavras, quero ver todas as principais informações típicas, mas os resultados devem ser filtrados para os parâmetros fornecidos, por exemplo, 'chrome' ou 'java'

    
por Michael Coleman 31.10.2014 / 11:43

6 respostas

12

Você pode simplesmente usar grep :

NAME
       grep, egrep, fgrep, rgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

DESCRIPTION
       grep  searches  the  named  input  FILEs (or standard input if no files are named, or if a single
       hyphen-minus (-) is given as file name) for lines containing a match to the  given  PATTERN.   By
       default, grep prints the matching lines.

Execute o seguinte comando para obter a saída desejada (ex-chrome):

top | grep chrome

Aqui estamos usando grep com os pipelines | so top & grep é executado paralelamente; top output dado a grep (como entrada) e grep chrome filtra as linhas correspondentes chrome até top parar.

    
por 01.11.2014 / 10:57
34

Da minha outra resposta aqui , você pode fazer algo como

top -p 'pgrep "java"'
    
por 01.11.2014 / 00:20
15
top -p 'pgrep -d "," java'

Explicação:

  1. top -p pid1, pid2: mostra várias informações do processo, o pid deve ser separado por ","
  2. pgrep -d "," java: imprime os pids de todo o programa java, os pids são separados por uma nova linha por padrão. use o "-d" para separá-lo por "," conforme exigido pelo topo.

Se você vir um erro como "top: -p argumento ausente", significa que você não tem nenhum programa java em execução, ou seja, o pgrep não tem saída.

    
por 25.02.2017 / 17:03
9

No OpenBSD top , apenas pressione g e digite o nome do comando que você deseja filtrar.

Em top em, e. Ubuntu, pressione o e digite, e. COMMAND=chrome para mostrar apenas as entradas da coluna COMMAND que são iguais a chrome .

Em Linuxes que usa a mesma implementação top do Ubuntu, leia a seção FILTRAGEM em uma janela no manual top .

    
por 08.10.2017 / 08:48
7

Outras boas respostas foram fornecidas, mas eu fiz um script há algum tempo, que chamei de ptop, que me serve bem:

#!/bin/sh
top -p $(pidof "$@" |sed s#\ #,#g) 2>/dev/null
if [ $? -ne 0 ]; then
  echo No processes with the specified name\(s\) were found
fi

Isso suporta vários nomes de processos a serem especificados (como ptop bash chrome ) e fornece uma mensagem de erro mais agradável no caso de não haver processos com qualquer um dos nomes especificados em execução.

    
por 01.11.2014 / 11:20
2

Se você quiser ficar em top e manter todos os outros processos em exibição para o contexto, pressione L para pesquisar seu processo:

Locate string chrome

Isso destacará qualquer processo com chrome no 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.

    
por 26.06.2018 / 11:10

Tags