Você pode observar o que o processo faz com o comando strace . Strace mostra as chamadas de sistema realizadas por um processo. Tudo - um processo que afeta seu ambiente é feito através de chamadas do sistema. Por exemplo, criar um diretório só pode ser feito chamando a mkdir chamada de sistema . O comando mkdir shell é um wrapper fino em torno da chamada do sistema com o mesmo nome.
Para ver o que o mkdir está fazendo, execute
strace mkdir foo
Você verá muitas chamadas diferentes de mkdir (76 no total para um mkdir no meu sistema), começando com execve que carrega a imagem binária do processo, então chama para carregar as bibliotecas e arquivos de dados usados pelo programa, chamadas para alocar memória, chamadas para observar o estado do sistema, ... Finalmente o comando chama mkdir e se encerra, terminando com exit_group .
Para observar o que um programa de GUI está fazendo, inicie-o e observe-o apenas durante uma ação. Descubra o ID do processo do programa (com ps x , htop ou qualquer outro visualizador de processo) e, em seguida, execute
strace -o file_manager.mkdir.strace -p1234
Isso coloca o rastreio do processo 1234 no arquivo file_manager.mkdir.strace . Pressione Ctrl + C para parar strace sem parar o programa. Note que algo como inserir o nome do diretório pode envolver milhares ou dezenas de milhares de chamadas de sistema: manipular movimentos do mouse, mudanças de foco e assim por diante é muito mais complexo nesse nível do que criar um diretório.
Você pode selecionar quais chamadas do sistema são registradas na strace output passando a opção -e . Por exemplo, para omitir read , write e select :
strace -e \!read,write,select …
Para gravar somente mkdir chamadas:
strace -e mkdir …
¹ Ok, quase tudo. A memória compartilhada envolve apenas uma chamada do sistema para a configuração inicial.