DOKK / manpages / debian 11 / psmisc / fuser.1.ru
FUSER(1) Пользовательские команды FUSER(1)

ИМЯ

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

ОБЗОР

fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name ...
fuser -l
fuser -V

ОПИСАНИЕ

fuser выводит PID процессов, которые используют заданные файлы или файловые системы. В режиме показа по умолчанию к каждому PID добавляется буква, обозначающая тип доступа:

текущий каталог.
работающий исполняемый файл.
открытый файл. В режиме отображения по умолчанию f не выводится.
открытый на запись файл. В режиме отображения по умолчанию F не выводится.
корневой каталог.
mmap-нутый файл или общая библиотека.
.
Символ место замещения, в режиме отображения по умолчанию не выводится.

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

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

[локальный_порт][,[удалённый_узел][,[удалённый_порт]]]

Для IP-адресов и портов можно использовать символьные или числовые значения.

fuser выводит в stdout только PID-ы , всё остальное отправляется в stderr.

ПАРАМЕТРЫ

Показывать все файлы, указанные в командной строке. По умолчанию выводятся только файлы, которые используются хотя бы одним процессом.
Тоже, что и параметр -m, используется для совместимости с POSIX.
Игнорируется, используется для совместимости с POSIX.
Завершить процессы, обращающиеся файлу. Если не указан -СИГНАЛ, то посылается SIGKILL. Процесс fuser никогда не завершает сам себя, но может завершить другие процессы fuser. Перед завершением эффективный пользовательский ID процесса, выполняющего fuser, устанавливается в его действительный пользовательский ID.
Запрашивать у пользователя подтверждение завершения процесса. Этот параметр игнорируется, если не указан -k.
Для области имён file выполнять все сравнения основываясь на инодах указанных файлов и никогда не использовать имена файлов, даже для файлов в сетевых файловых системах.
Показать все известные имена сигналов.
NAME specifies a file on a mounted file system or a block device that is mounted. All processes accessing files on that file system are listed. If a directory is specified, it is automatically changed to NAME/ to use any file system that might be mounted on that directory.
Выполнять запрос, только если ИМЯ является точкой монтирования. Это бесценный ремень безопасности, который не позволит угробить машину, если ИМЯ вдруг не является файловой системой.
Завершать только процессы с правами на запись. Этот параметр игнорируется, если не указан -k.
Выбрать другую область имён. Поддерживаются области имён file (имена файлов, по умолчанию), udp (локальные порты UDP) и tcp (локальные порты TCP). Порты могут указываться номером или символическим именем. Если не возникает двусмысленности, то можно использовать сокращённую запись имя/область (например, 80/tcp).
Не выводить сообщения. В этом режиме игнорируются -u и -v. Параметр -a нельзя использовать вместе с -s.
-СИГНАЛ
Для завершения процессов посылать указанный сигнал вместо SIGKILL. Сигналы могут задаваться именем (например, -HUP) или номером (например, -1). Этот параметр игнорируется, если не указан -k.
Добавлять имя пользователя владельца процесса к каждому PID.
Подробный режим. Процессы показываются в стиле ps. Поля PID, USER и COMMAND как у ps. В ACCESS показан тип доступа процесса к файлу. Подробный режим будет также использоваться при использовании определённого файла в качестве точки монтирования, экспорта knfs или файла подкачки. В этом случае вместо PID выводится обозначение kernel.
Показать информацию о версии.
-4, --ipv4
Поиск только среди сокетов IPv4. Этот параметр не должен использоваться вместе с -6 и применяется только с областями имён tcp и udp.
-6, --ipv6
Поиск только среди сокетов IPv6. Этот параметр не должен использоваться вместе с -4 и применяется только с областями имён tcp и udp.
-
Отменить значения всех параметров и установить сигнал обратно в SIGKILL.

ФАЙЛЫ

/proc
местонахождение файловой системы proc

ПРИМЕРЫ

завершить все процессы, обращающиеся к файловой системе /home любым способом.
вызвать команду, если нет процессов, использующих /dev/ttyS1.
показать все процессы на (локальном) порту TELNET.

ОГРАНИЧЕНИЯ

Процессы, обращающиеся к одному файлу или файловой системе несколько раз одним и тем же способом, выводятся однократно.

Если в командной строке один объект указывается несколько раз, то некоторые из этих элементов могут игнорироваться.

fuser может собирать некоторую информацию только имея дополнительные права. В частности, открытые процессами файлы, принадлежащие другим пользователям, могут не появиться, а исполняемые файлы могут быть отнесены только к отображённым.

fuser не может сообщить о процессах, если не имеет прав поиска в таблице файловых дескрипторов. Чаще всего эта проблема возникает при поиске сокетов TCP или UDP в случае, если fuser запускается без прав пользователя root. В этом случае fuser сообщит, что нет доступа.

Установка fuser как SUID root решит проблему доступа к определённой информации, но может быть нежелательна при соблюдении безопасности и конфиденциальности.

Области имён udp, tcp и доменные сокеты UNIX не опрашиваются, если используются ядра старее версии 1.3.78.

Обращения ядра показываются только с параметром -v.

Параметр -k применим только для процессов. Если пользователем является ядро, то fuser выводит только совет и ничего не делает.

ДЕФЕКТЫ

fuser -m /dev/sgX покажет (или завершит, если указан -k) все процессы, даже если у вас нет этого настроенного устройства. Также, для этого могут быть другие устройства.

При параметре монтирования -m найдутся все файлы на том же устройстве, что и указанный файл, дополнительно укажите параметр -M, если вы подразумевали только точку монтирования.

СМОТРИТЕ ТАКЖЕ

kill(1), killall(1), lsof(8), pkill(1), ps(1), kill(2).

2020-09-09 psmisc