Jak znaleźć przesunięcie pliku otwartego pliku?


26

Mój problem polega na tym, lsof -p pid że mogę znaleźć listę otwartego pliku procesu, którego identyfikator procesu to pid. Ale czy istnieje sposób, aby ustalić przesunięcie pliku dla każdego dostępnego pliku?

Proszę o sugestie?

Odpowiedzi:


38

W systemie Linux można znaleźć pozycję numer deskryptora pliku Nprocesu PIDw /proc/$PID/fdinfo/$N. Przykład:

$ cat /proc/687705/fdinfo/36
pos:    26088
flags:  0100001

Ten sam plik można otworzyć kilka razy w różnych pozycjach za pomocą kilku deskryptorów plików, więc musisz wybrać odpowiedni plik, jeśli jest ich więcej niż jeden. Posługiwać się:

$ readlink /proc/$PID/fd/$N

wiedzieć, jaki jest plik, do którego dołączony jest odpowiedni deskryptor pliku (może to nie być plik, w tym przypadku dowiązanie symboliczne zwisa).


1
Twoja odpowiedź jest świetna.
Ta Thanh Dinh

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.