Process Monitor equivalente para Linux?

21

Existe um equivalente Unix / Linux ao Monitor de processos , seja GUI ou CUI?

Se isso faz diferença, estou olhando para o Ubuntu, mas se houver um equivalente para outros sistemas (Mac, outras variantes do Linux como o Fedora, etc.), então saber qualquer um deles também seria útil.

Editar:

O processo Monitor é para monitorar as chamadas do sistema (como criação ou gravação de arquivos), enquanto o Process Explorer é para monitorar o status do processo (que é semelhante ao System Monitor). Eu estou pedindo o primeiro, não o segundo. : -)

    
por Mehrdad 21.05.2011 / 22:06

7 respostas

10

O modo de espera do console para isso é top , mas há alternativas como o meu favorito htop , que oferece a você um pouco mais de flexibilidade de exibição e permite mais algumas operações nos processos.

Uma visualização menos interativa que é melhor para uso em scripts seria o programa ps e todos os seus parentes.

Editar: Com base na sua pergunta esclarecida, você pode observar que strace lida com as chamadas do sistema feitas por um determinado processo, incluindo todas as operações de leitura-gravação e chamadas de função os. Você pode ativá-lo na linha de comando antes do programa que deseja acompanhar ou anexar a um processo em execução pressionando s em um processo selecionado em htop .

    
por 21.05.2011 / 22:20
9

O avô de todos os monitores de processo é top , e muitas ferramentas de monitoramento do sistema são chamadas de% código%. Por exemplo, há top para assistir a E / S de disco, iotop para um monte de recursos do sistema, atop para consumo de energia.

Se você deseja informações mais detalhadas, ela não é rastreada por padrão. Para observar o que um processo específico está fazendo, ligue para powertop . Por exemplo, se você estiver interessado apenas em acessos ao sistema de arquivos:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

strace é específico do Linux, mas outros sistemas possuem uma ferramenta semelhante: strace no Solaris, truss ou ktrace sob * BSD, etc.

Para assistir ao que está acontecendo com um arquivo específico ou em um diretório ou árvore de diretórios específico, use o inotify instalação .

inotifywait -m .

Novamente, o recurso é específico para o Linux, mas a maioria dos outros uniões tem um sistema semelhante, por exemplo, kqueue em * BSD e FAM (originalmente da SGI, mas agora disponível como API em muitos sistemas).

Para assistir a todas as chamadas do sistema no Linux, você pode usar o subsistema de auditoria . É relativamente recente e não há muita literatura sobre o assunto; pesquise dtrace ou leia a auditctl man page . Há alguns exemplos neste site: rastreamento de acessos a arquivos , acompanhamento da execução do processo .

    
por 21.05.2011 / 22:37
7

Você pode querer dar uma olhada em lsof e strace . O Process Monitor da Sysinternal é na verdade o Filemon e o Regmon combinados com alguns aprimoramentos adicionais. O comando top é mais parecido com o Process Explorer.

    
por 21.05.2011 / 22:53
3

Provavelmente você está procurando sysdig

Por exemplo:

sysdig -A -c echo_fds
    
por 16.11.2015 / 08:58
2

Estou muito atrasado para responder a isso, mas comecei um projeto que visa exatamente o que você está procurando. Dê uma olhada aqui: link

    
por 12.03.2014 / 20:43
1

Eu não usei esse Process Monitor, mas até onde eu sei, é o mesmo que gnome-system-monitor em um sistema Gnome. Se você usa o KDE, provavelmente tem algo parecido.

    
por 21.05.2011 / 22:15
0

O dtrace4linux permite que você rastreie algumas informações interessantes do kernel. Embora pareça ser mais poderoso que o sysdig, infelizmente não é tão bem comportado.

    
por 16.11.2015 / 09:36