Открытые файлы в Linux: команда lsof
Обновлено 3 июля 2026 г.
lsof (list open files) показывает, какие файлы и сокеты открыты и каким процессом.
Синтаксис
lsof [опции]Частые случаи
lsof -p 1234 # что открыто процессом с PID 1234
lsof /var/log/syslog # кто держит этот файл
sudo lsof -i :80 # кто занял порт 80
sudo lsof -i # все сетевые соединения
lsof +D /home/user # все открытые файлы в каталогеКак это устроено: в Linux почти всё - это файл
В Linux обычный файл, сокет, канал и устройство - всё это «открытые файлы» у процесса. Поэтому
lsofотвечает сразу на много вопросов: кто занял сетевой порт (-i :порт), почему не отмонтировать диск (какой процесс держит на нём файл), куда делось место (удалённый, но всё ещё открытый файл место не освобождает - его видно вlsof). Те же данные лежат в/proc/<PID>/fd, аlsofлишь собирает их в удобный вид.
В книге
Подробно эта тема разобрана в главе Мониторинг и узкие места.