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?
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:
W systemie Linux można znaleźć pozycję numer deskryptora pliku N
procesu PID
w /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).
lsof
można to zrobić z -o
opcją.
W Linuksie pobiera informacje /proc
, więc możesz je również tam znaleźć .