Il mio problema è che con
lsof -p pid
posso trovare l'elenco dei file aperti di un processo il cui ID processo è pid. Ma c'è un modo per scoprire l'offset del file di ciascun file a cui si accede?
Per favore mi dia qualche suggerimento?
Il mio problema è che con
lsof -p pid
posso trovare l'elenco dei file aperti di un processo il cui ID processo è pid. Ma c'è un modo per scoprire l'offset del file di ciascun file a cui si accede?
Per favore mi dia qualche suggerimento?
Risposte:
Su Linux, puoi trovare la posizione del numero N
del descrittore di file del processo PID
in /proc/$PID/fdinfo/$N
. Esempio:
$ cat /proc/687705/fdinfo/36
pos: 26088
flags: 0100001
Lo stesso file può essere aperto più volte con posizioni diverse utilizzando diversi descrittori di file, quindi dovrai scegliere quello pertinente nel caso ce ne siano più di uno. Uso:
$ readlink /proc/$PID/fd/$N
per sapere qual è il file a cui è allegato il descrittore di file corrispondente (potrebbe non essere un file, in questo caso il collegamento simbolico è penzolante).
lsof
puoi farlo, con l' -o
opzione.
Sotto Linux, ottiene le sue informazioni /proc
, quindi puoi anche arrivarci .