Se eu quiser criar uma GUI que exiba exatamente os mesmos dados que o comando TOP faz no LINUX, onde obtenho os dados?

1

Descobri que posso obter o PID (primeira coluna) do arquivo / proc / [pid] / stat, primeira coluna. Não tenho certeza de onde posso encontrar o restante dos atributos. E meu palpite é que precisamos calcular a% de CPU e% MEM de alguns outros atributos. Alguém por favor pode me ajudar com isso? Minha GUI deve ser exatamente igual ao topo. Eu estou usando Python3 e ttk para a GUI.

    
por Dee 08.10.2015 / 22:31

2 respostas

3

Se você digitar:

strace -o outfile top

ele executará top como de costume, enquanto rastreia todas as chamadas do sistema e coloca o resultado em outfile . Os arquivos que ele abre são visíveis como chamadas para a chamada do sistema open(2) . Depois de executar isso, você deve sair rapidamente do top , pois ele continuará adicionando muitos dados e bastará apenas alguns segundos para dizer o que lê.

Executando isso rapidamente no meu próprio sistema, parece que a maioria dos dados é de /proc/<pid>/stat , /proc/<pid>/status e /proc/<pid>/statm . Alguma pesquisa e experimentação deve permitir que você determine os formatos destes.

    
por 09.10.2015 / 01:40
0

man 5 proc tem muitos detalhes sobre o que você pode encontrar em seu sistema de arquivos proc.

A biblioteca procps é basicamente um monte de coisas que lêem arquivos nesse sistema de arquivos, os analisam e definem variáveis ou estruturas dependendo do que encontrar. Geralmente a resposta para "por que o ps / top etc mostra o valor X" é "porque é o que estava no arquivo Z"

Estamos ativamente retrabalhando a libproc / libprocps / libwhatwillwecallitnext biblioteca de procps para torná-la muito mais parecida com uma biblioteca normal.

Atualmente, haverá apenas bindings C (porque precisamos deles), mas talvez no futuro possa haver outros também. A API precisa se estabilizar primeiro e precisaremos colocar a nova biblioteca lá e ver se funciona no mundo real, mas então podemos investigar isso.

Olhar para a fonte principal é outra idéia, o problema é que, se você rolar sozinho, precisará rastrear todas as coisas que o pessoal do kernel faz para o procfs, enquanto que com a biblioteca essa é nossa dor de cabeça.

    
por 18.11.2015 / 08:57