lsof -p 12345
listará todos os arquivos abertos pelo processo cujo pid é 12345, mas apenas por um instante específico.
Como podemos monitorar continuamente um processo do início ao fim (até o término do processo) para listar / mostrar todos os arquivos acessados pelo processo durante toda a sua vida útil?
Respostas:
Tente com
strace -p 12345
; deve fazer o que você está tentando alcançar.A saída pode ser filtrada para exibir apenas os arquivos abertos ( comentário de Dan D. ):
Nota: você também pode rastrear rapidamente os processos em execução com
strace -e open <command>
.fonte
strace -p {pid} | grep -i "Open" | tee files_opened.log
. A chave égrep
, que permite filtrar a saída da chamada do sistema que você deseja (por exemploopen()
).strace
pode fazer isso melhor do quegrep
com a-e
opção:strace -e open
O novo utilitário fatrace fará isso: https://launchpad.net/fatrace/
Não use a opção -p, isso significa o oposto do que significa no lsof ou em outros utilitários.
fonte
Isso repetirá o comando e limpará a tela toda vez:
AVISO: isso perderá acesso rápido a arquivos e é adequado apenas para ver arquivos antigos
fonte
strace
.lsof