lsof -p 12345
enumerará todos los archivos abiertos por proceso cuyo pid es 12345 pero solo por un instante de tiempo particular.
¿Cómo podemos monitorear continuamente un proceso desde el principio hasta el final (hasta que finalice el proceso) para enumerar / mostrar todos los archivos a los que accede el proceso durante toda su vida útil?
Respuestas:
Tratar con
strace -p 12345
; debe hacer lo que intentas lograr.La salida se puede filtrar para mostrar solo los archivos abiertos ( comentario de Dan D. ):
Nota: también puede rastrear procesos que se ejecutan rápidamente con
strace -e open <command>
.fuente
strace -p {pid} | grep -i "Open" | tee files_opened.log
. La clave esgrep
, que le permite filtrar la salida para la llamada al sistema que desea (por ejemploopen()
).strace
puede hacerlo mejor quegrep
con la-e
opción:strace -e open
La nueva utilidad fatrace hará esto: https://launchpad.net/fatrace/
No use la opción -p, significa lo contrario de lo que significa en lsof u otras utilidades.
fuente
Esto repetirá nuevamente su comando y borrará la pantalla cada vez:
ADVERTENCIA: esto perderá accesos rápidos a archivos y solo es adecuado para ver archivos de larga data
fuente
strace
.lsof