lsof (list open files) показывает, какой процесс держит файл, сокет или порт.

# кто держит конкретный файл
lsof /var/log/nginx/access.log

# все открытые файлы процесса
lsof -p 1234

# все открытые файлы в директории (рекурсивно)
lsof +D /var/www/html

# открытые сетевые соединения
lsof -i

# слушающие TCP-порты
lsof -i TCP -s TCP:LISTEN

# кто занял порт 80
lsof -i :80

Почему файл нельзя удалить или размонтировать:

# найти процесс, держащий точку монтирования
lsof +D /mnt/data

# удалённые файлы, которые ещё открыты (занимают место)
lsof | grep deleted

lsof -i выводит COMMAND, PID, USER, TYPE (TCP/UDP), NAME (адрес:порт). Сочетание с grep и -n (без DNS-резолвинга) ускоряет диагностику в 2–3 раза.

#linux #networking #sysadmin #debug