Determinar quais arquivos estão sendo acessados ​​por um processo

9

Como eu descobriria todos os arquivos que um processo específico acessa?

Estou usando o Ubuntu 9.04.

juan2raid
fonte

Respostas:

11

lsof listará arquivos abertos e IDs de processo associados. Ele lista tudo se nenhuma opção for fornecida.

Existe uma opção,, -ppara listar arquivos abertos para um único processo. Portanto, para um processo com PID 6714, isso listará os arquivos abertos por esse processo:

    lsof -p 6714

Para listar apenas arquivos regulares, o grep pode ser usado para filtrar a saída de lsof:

    lsof -p 6714 | grep REG

Se precisar ser mais robusto do que com o grep, a -Fopção poderá ser usada, mas será mais complexa. Na página do manual lsof :

Quando a opção -F é especificada, lsof produz saída adequada para processamento por outro programa - por exemplo, um script awk ou Perl, ou um programa C.

Depende de suas necessidades.

Peter Mortensen
fonte
11
Eu gosto de adicionar '-b' a lsof, isso será um pouco mais rápido. Além disso, adiciono 2> / dev / null antes do pipe para grep.
kbyrd