Mi problema es que
lsof -p pid
puedo encontrar la lista de archivos abiertos de un proceso cuya identificación de proceso es pid. Pero, ¿hay alguna manera de averiguar el desplazamiento de cada archivo al que se accede?
Por favor, dame algunas sugerencias ?
Respuesta1
En Linux, puede encontrar la posición del número de descriptor de archivo N
del proceso PID
en formato /proc/$PID/fdinfo/$N
. Ejemplo:
$ cat /proc/687705/fdinfo/36
pos: 26088
flags: 0100001
Un mismo archivo se puede abrir varias veces con diferentes posiciones utilizando varios descriptores de archivo, por lo que tendrás que elegir el correspondiente en caso de que haya más de uno. Usar:
$ readlink /proc/$PID/fd/$N
para saber cuál es el archivo al que está adjunto el descriptor de archivo correspondiente (puede que no sea un archivo, en este caso el enlace simbólico está colgando).
Respuesta2
lsof
Puedes hacer esto, con la -o
opción.
En Linux, obtiene su información de /proc
, por lo que puedeconsíguelo allítambién.