Fuser

fuser — утилита, идентифицирующая процессы, которые используют указанные файлы или сокеты.

Синтаксис команды 
 fuser [-a|-s|-c] [-4|-6] [-n space] [-k [-i] [-signal] ] [-muvf] name … 
 fuser -l 
 fuser -V 

fuser отображает идентификаторы процессов (PIDs), которые используют в данный момент указанные файлы или файловые системы, заданные аргументом name. По умолчанию, во время вывода информации после имени каждого файла следует буква, показывающая вид доступа:
c
 текущий каталог.
e
 запущенный исполняемый файл.
f
 открытый файл. По умолчанию в режиме вывода информации буква f может отсутствовать.
F
 файл открыт для записи.
r
 корневой каталог.
m
 файл является отображаемым или разделяемой (совместно используемой) библиотекой.

Команда fuser возвращает ненулевой код возврата, если никакой из указанных файлов не «захвачен» ни одним процессом или в случае возникновения фатальной ошибки. Если найден хотя бы один процесс, который использует name, тогда команда fuser возвращает ноль.

В случае просмотра процессов, которые используют сокеты TCP и UDP, соответствующее название space должно быть указано с параметром -n. По умолчанию команда fuser будет просматривать оба сокета IPv6 и IPv4. Чтобы изменить установки, действующие по умолчанию, необходимо использовать параметры −4 и −6. В качестве сокета(ов) может быть указан как локальный, так и удалённый порт или удалённый адрес. Хотя все поля являются необязательными, однако перед пропущенными полями запятые должны присутствовать: lcl_port, rmt_host, rmt_port.

Для IP-адресов и номеров портов может быть указан либо номер порта, либо его символьное название.

На стандартное устройство вывода fuser направляет только идентификаторы процессов (PIDs), всё остальное направляется на стандартное устройство вывода ошибок.

Параметры 
-a
 Показывает информацию для всех файлов, которые указаны в командной строке. По умолчанию выводятся имена только тех файлов, которые используются хотя бы одним процессом.
-c
 Подобно параметру -m и применяется для совместимости с POSIX.
-f
 Игнорируется без предупреждения. Применяется для совместимости с POSIX.
-k
 Уничтожает (завершает) процессы, которые используют указанный файл. Посылаемый сигнал завершения SIGKILL можно заменить с помощью параметра -signal. Процесс fuser никогда не уничтожит себя сам, однако может завершить работу других процессов fuser. Перед попыткой уничтожить выполняющийся процесс команда fuser устанавливает эффективный идентификатор пользователя ID этого процесса в идентификатор собственного пользователя.
-i
 Перед завершением процесса потребует подтверждения от пользователя. Если не задан параметр -k, этот параметр игнорируется без предупреждения.
-l
 Выводит список всех существующих названий сигналов.
-m
 В качестве name указывается файл на смонтированной файловой системе или смонтированное специальное блочное устройство. Выводится список всех процессов, которые используют файлы на этой файловой системе. Если указанный файл является каталогом, тогда к его имени автоматически добавляется name/. и рассматривается любая файловая система, которая может быть смонтирована на этот каталог.
-n space
 Выбирает различные множества имён. Поддерживаются такие множества имён как file (по умолчанию это имена файлов), udp (локальные порты UDP) и tcp (локальные порты TCP). Для портов может быть указан либо номер порта, либо его символьное название. Можно использовать сокращённую запись цифрами name/Ispace (например, 80/tcp), если она однозначно характеризует объект.
-s
 Выполняет операции без вывода сообщений. Параметры -u и -v игнорируются в этом режиме. Параметр -a не должен использоваться с параметром -s.
-signal
 Посылает процессу указанный сигнал завершения работы вместо обычного SIGKILL. Сигналы могут быть заданы по названию (например, -HUP) или по номеру (например, −1). Этот параметр без предупреждения игнорируется, если не используется параметр -k.
-u
 Добавляет к каждому PID имя владельца процесса.
-v
 Режим подробного информирования. Процессы показываются в стиле вывода команды ps.
 Поля PID, USER и COMMAND подобны выводу команды ps. Поле ACCESS показывает процесс, который использует файл. Если объект используется ядром (например, в случае точек монтирования, swap файла и др.), вместо PID отображается строка kernel.
-V
 Выводит информацию о версии программы.
-4
 Выполняется поиск только для сокета IPv4. Этот параметр не должен использоваться с параметром -6 и работает только с названиями space tcp и udp.
-6
 Выполняется поиск только для сокета IPv6. Этот параметр не должен использоваться с параметром -4 и работает только с названиями space tcp и udp.
-
 Сбрасывает все параметры и устанавливает сигнал уничтожения процессов в SIGKILL.

Примеры 
 fuser -km /home — уничтожает все процессы, использующие каким-либо образом файловую систему /home.
 if fuser -s /dev/ttyS1; then :; else something; fi — вызывает выполнение something, если никакой другой процесс не использует /dev/ttyS1.
 fuser telnet/tcp — показывает все процессы (локальные) на порте TELNET.

См. также 
 lsof (linux)
 FileMon (windows)

Ссылки 
 
 linux.die.net

Утилиты Unix