← Back to notes

lsof


lsof

lsof (list open files) — выводит открытые файлы и связанные с ними процессы. В UNIX-семантике "файл" включает обычные файлы, каталоги, символические ссылки, FIFO, сокеты (UNIX, IPv4, IPv6), block/char-устройства, anon_inode-объекты (eventfd, signalfd, epoll).

См. lsof(8).


Источники данных

lsof читает /proc/<pid>/fd/, /proc/<pid>/maps, /proc/net/{tcp,tcp6,udp,udp6,unix} и др.; на BSD — kvm/sysctl. Без root видит только файлы, принадлежащие текущему UID.

Колонки вывода:

  • COMMANDcomm процесса
  • PID — PID
  • TID — TID (с -K)
  • USER — владелец процесса
  • FD — номер fd или специальная метка: cwd, rtd (root dir), txt (text/code), mem (mmap), DEL (удалённый mmap), число + режим (r, w, u)
  • TYPEREG, DIR, CHR, BLK, FIFO, unix, IPv4, IPv6, sock, a_inode и др.
  • DEVICE — major,minor устройства
  • SIZE/OFF — размер или смещение
  • NODE — inode, для интернет-сокетов — протокол (например TCP); порт — в колонке NAME
  • NAME — путь или описание endpoint'а

Синтаксис

lsof [опции] [имена]

По умолчанию опции комбинируются по OR. Для AND используйте -a.


Часто используемые опции

ОпцияНазначение
-p PID[,PID...]Фильтр по PID
-u USER / -u ^USERВключить/исключить пользователя
-c NAME / -c /regex/По имени команды
-i [46][PROTO][@HOST][:PORT]Сетевые соединения
-iTCP -sTCP:LISTENTCP в состоянии LISTEN
+D DIRРекурсивно по каталогу
+d DIRТолько содержимое каталога (без рекурсии)
-tТолько PID (для скриптов)
-nНе резолвить host:port
-PНе резолвить port → service
-aЛогическое AND между фильтрами
-KПоказать потоки (TID)
-XПропустить TCP/UDP/UDPLITE-файлы (ускорение при множестве сетевых fd)
-r NRepeat-mode каждые N секунд

Примеры

Кто слушает порт

sudo lsof -nP -iTCP:80 -sTCP:LISTEN

Все соединения процесса

sudo lsof -nP -p 1234 -i

Кто держит файл/сокет

sudo lsof /var/log/syslog
sudo lsof /run/docker.sock

Удалённые, но удерживаемые файлы (deleted but open)

sudo lsof +L1

Кто работает в каталоге

sudo lsof +D /mnt/usb

Отправить SIGTERM держателям файла

sudo kill $(lsof -t /path/to/file)

Ссылки

lsof | Aleksandr Suprun