Моя проблема полягає в тому, що
lsof -p pid
я можу дізнатися список відкритого файлу процесу, ідентифікатор процесу - pid. Але чи є спосіб дізнатися зміщення файлу кожного файлу, що доступ до нього?
Будь ласка, дайте мені кілька пропозицій?
Моя проблема полягає в тому, що
lsof -p pid
я можу дізнатися список відкритого файлу процесу, ідентифікатор процесу - pid. Але чи є спосіб дізнатися зміщення файлу кожного файлу, що доступ до нього?
Будь ласка, дайте мені кілька пропозицій?
Відповіді:
У Linux, ви можете знайти позицію номера дескриптора N
процесу PID
в /proc/$PID/fdinfo/$N
. Приклад:
$ cat /proc/687705/fdinfo/36
pos: 26088
flags: 0100001
Один і той же файл можна відкрити кілька разів з різних позицій, використовуючи кілька дескрипторів файлів, тому вам доведеться вибрати відповідний, якщо їх більше, ніж один. Використання:
$ readlink /proc/$PID/fd/$N
знати, який файл, до якого додається відповідний дескриптор файлу (це може бути не файл, в цьому випадку симпосилання звисає).
lsof
можна зробити це, з -o
можливістю.
Під Linux він отримує свою інформацію /proc
, тому ви також можете отримати їх там .