Process Monitor equivalente ao Linux?

26

Existe um equivalente Unix / Linux do Process Monitor , seja GUI ou CUI?

Se 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.), saber que qualquer um deles também seria útil.

Editar:

O Process Monitor é para monitorar chamadas do sistema (como criação ou gravação de arquivo), enquanto o Process Explorer é para monitorar o status do processo (que é como o System Monitor). Estou pedindo o primeiro, não o último. :-)

Mehrdad
fonte

Respostas:

12

O console em espera para isso é top, mas existem alternativas como a minha favoritahtop que oferecem um pouco mais de flexibilidade de exibição e permitem mais operações nos processos.

Uma visão menos interativa e melhor para uso em scripts seria o psprograma e todos os seus parentes.

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

Caleb
fonte
4
Eu acredito que topé o equivalente ao Process Explorer , não ao Process Monitor , certo?
Mehrdad
Que tal você executá-lo e explorar a página do manual. Eu li a lista de recursos aos quais você vinculou o monitor de processo e parecia htopcobrir todos os detalhes, exceto o monitoramento da sequência de inicialização. Na melhor das hipóteses poderia ser ativado em screen/ tmuxparte caminho em algum momento através de um cylce linux boot.
Caleb
À luz de seus outros comentários, você também pode estar procurando strace, que você pode ativar htoppressionando sum processo ou manualmente na linha de comando ao executar algo ou com um ID de processo.
Caleb
12

O avô de todos os monitores de processo é top, e muitas ferramentas de monitoramento do sistema são chamadas top. Por exemplo, é iotopnecessário assistir a E / S de disco, atoppara vários recursos do sistema, powertoppara consumo de energia.

Se você quiser informações mais detalhadas, elas não serão rastreadas por padrão. Para observar o que um processo específico está fazendo, chame strace-o. 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 ao Linux, mas outros sistemas têm uma ferramenta semelhante: trussno Solaris, ktraceoudtrace em * 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 recurso inotify .

inotifywait -m .

Novamente, o recurso é específico para Linux, mas a maioria dos outros departamentos possui um sistema semelhante, por exemplo, kqueue sob * 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; procure auditctlou leia a auditctlpágina de manual . Existem alguns exemplos neste site: rastreando acessos a arquivos , rastreando a execução do processo .

Gilles 'SO- parar de ser mau'
fonte
Tem certeza de que está se referindo ao equivalente ao Process Monitor , e não ao Process Explorer ?
Mehrdad 21/05
@ Mehrdad: Entendi, eu segui o nome e a memória de uma ferramenta que usei no Windows (que é de fato o Process Explorer), e não a descrição real. É sempre perigoso solicitar o equivalente a um programa específico, melhor solicitar um programa com determinados recursos.
Gilles 'SO- stop be evil'
Obrigado. iotop -o -b -PMe mostra quais processos estão fazendo operações de O disco I /
bartolo-otrit
8

Você pode dar uma olhada em lsofe strace. O Process Monitor da Sysinternal é na verdade Filemon e Regmon combinados com algumas melhorias adicionais. O topcomando é mais parecido com o Process Explorer.

Ómega
fonte
4

Você provavelmente está procurando sysdig

Por exemplo:

sysdig -A -c echo_fds
Singlet
fonte
2

Eu não usei esse Process Monitor, mas tanto quanto posso dizer, é o mesmo que gnome-system-monitorem um sistema Gnome. Se você usa o KDE, eles provavelmente têm algo parecido.

Keith
fonte
Não, eles são diferentes. O Process Monitor, na verdade, conecta as chamadas do sistema, não exibe informações do processo. (O que você está se referindo é realizado pelo Process Explorer, no entanto).
Mehrdad
Bem, eu costumo usar a ferramenta CLI vmstat para coisas assim. Mas esse sistema é amplo, não por processo.
Keith
1

O dtrace4linux permite rastrear alguns detalhes interessantes do kernel. Embora pareça ser mais poderoso que o sysdig, infelizmente não é tão bem comportado.

Rui F Ribeiro
fonte