Middle
Kako saznati s kojim fajlovima program trenutno radi u Linuxu?
sobes.tech АИ
Одговор од АИ
Использвайте инструмента lsof (списък на отворените файлове).
# Основна употреба на `lsof` за показване на списък с всички отворени файлове
lsof
За да получите списък с отворени файлове от конкретен процес (по PID):
# Покажи списък с отворени файлове за процес с PID 1234
lsof -p 1234
За да получите списък с отворени файлове от конкретна команда (по име):
# Покажи списък с отворени файлове за всички процеси с името "nginx"
lsof -c nginx
За да получите списък с отворени файлове от конкретен потребител:
# Покажи списък с отворени файлове за потребителя "user1"
lsof -u user1
Допълнителни флагове на lsof:
| Флаг | Описание |
|---|---|
-i |
Покажи мрежови връзки (сокети) |
-n |
Не преобразува IP адресите в имена на хостове |
-P |
Не преобразува портовете в имена на услуги |
-r [N] |
Рестартира lsof на всеки N секунди |
Пример за използване за определяне на процес, който използва конкретен файл:
# Кой процес използва файла /var/log/syslog?
lsof /var/log/syslog
Изходът на lsof включва следните колони:
- COMMAND: Името на командата, която е стартирала процеса.
- PID: Идентификатор на процеса.
- TID: Идентификатор на нишката (ако е приложимо).
- USER: Името на потребителя, който е стартирал процеса.
- FD: Дескриптор на файла.
- TYPE: Тип на възела на файла (DIR, REG, FIFO, CHR, BLK, SOCK, и т.н.).
- DEVICE: Идентификатор на устройството.
- SIZE/OFF: Размер на файла или отместване.
- NODE: Номер на inode.
- NAME: Името на файла или мрежовият адрес.