FUSER
Section: Пользовательские команды (1)
Updated: 2020-09-09
Page Index
ИМЯ
fuser - ищет процессы, использующие указанные файлы или сокеты
ОБЗОР
fuser [
-fuv] [
-a|
-s] [
-4|
-6] [
-c|
-m|
-n space]
[
-k [
-i] [
-M] [
-w] [
-SIGNAL] ]
name ...
fuser -l
fuser -V
ОПИСАНИЕ
fuser выводит PID процессов, которые используют заданные файлы или
файловые системы. В режиме показа по умолчанию к каждому PID добавляется
буква, обозначающая тип доступа:
-
- c
-
текущий каталог.
- e
-
работающий исполняемый файл.
- f
-
открытый файл. В режиме отображения по умолчанию f не выводится.
- F
-
открытый на запись файл. В режиме отображения по умолчанию F не
выводится.
- r
-
корневой каталог.
- m
-
mmap-нутый файл или общая библиотека.
- .
-
Символ место замещения, в режиме отображения по умолчанию не выводится.
fuser возвращает ненулевой код выхода, если ни к одному из указанных
файлов никто не обращается или возникла критическая ошибка. Если найден хотя
бы один доступ, то fuser возвращает ноль.
Чтобы найти процессы, использующие сокеты TCP и UDP нужно в параметре -n
указать соответствующую область имён. По умолчанию fuser просматривает
сокеты IPv6 и IPv4. Чтобы изменить поведение по умолчанию укажите параметр
-4 и -6. Сокеты можно задавать по локальному и удалённому порту и
удалённому адресу. Все поля необязательны, но должны указываться запятые их
разделяющие:
[локальный_порт][,[удалённый_узел][,[удалённый_порт]]]
Для IP-адресов и портов можно использовать символьные или числовые значения.
fuser выводит в stdout только PID-ы , всё остальное отправляется в
stderr.
ПАРАМЕТРЫ
- -a, --all
-
Показывать все файлы, указанные в командной строке. По умолчанию выводятся
только файлы, которые используются хотя бы одним процессом.
- -c
-
Тоже, что и параметр -m, используется для совместимости с POSIX.
- -f
-
Игнорируется, используется для совместимости с POSIX.
- -k, --kill
-
Завершить процессы, обращающиеся файлу. Если не указан -СИГНАЛ/, то
посылается SIGKILL. Процесс fuser никогда не завершает сам себя, но может
завершить другие процессы fuser. Перед завершением эффективный
пользовательский ID процесса, выполняющего fuser, устанавливается в его
действительный пользовательский ID.
- -i, --interactive
-
Запрашивать у пользователя подтверждение завершения процесса. Этот параметр
игнорируется, если не указан -k.
- -I, --inode
-
Для области имён file выполнять все сравнения основываясь на инодах
указанных файлов и никогда не использовать имена файлов, даже для файлов в
сетевых файловых системах.
- -l, --list-signals
-
Показать все известные имена сигналов.
- -m NAME, --mount NAME
-
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.
- -M, --ismountpoint
-
Выполнять запрос, только если ИМЯ является точкой монтирования. Это
бесценный ремень безопасности, который не позволит угробить машину, если
ИМЯ вдруг не является файловой системой.
- -w
-
Завершать только процессы с правами на запись. Этот параметр игнорируется,
если не указан -k.
- -n ОБЛАСТЬ, --namespace ОБЛАСТЬ
-
Выбрать другую область имён. Поддерживаются области имён file (имена
файлов, по умолчанию), udp (локальные порты UDP) и tcp (локальные
порты TCP). Порты могут указываться номером или символическим именем. Если
не возникает двусмысленности, то можно использовать сокращённую запись
имя/область (например, 80/tcp).
- -s, --silent
-
Не выводить сообщения. В этом режиме игнорируются -u и -v. Параметр
-a нельзя использовать вместе с -s.
- -СИГНАЛ
-
Для завершения процессов посылать указанный сигнал вместо SIGKILL. Сигналы
могут задаваться именем (например, -HUP) или номером (например,
-1). Этот параметр игнорируется, если не указан -k.
- -u, --user
-
Добавлять имя пользователя владельца процесса к каждому PID.
- -v, --verbose
-
Подробный режим. Процессы показываются в стиле ps. Поля PID, USER и
COMMAND как у ps. В ACCESS показан тип доступа процесса к
файлу. Подробный режим будет также использоваться при использовании
определённого файла в качестве точки монтирования, экспорта knfs или файла
подкачки. В этом случае вместо PID выводится обозначение kernel.
- -V, --version
-
Показать информацию о версии.
- -4, --ipv4
-
Поиск только среди сокетов IPv4. Этот параметр не должен использоваться
вместе с -6 и применяется только с областями имён tcp и udp.
- -6, --ipv6
-
Поиск только среди сокетов IPv6. Этот параметр не должен использоваться
вместе с -4 и применяется только с областями имён tcp и udp.
- -
-
Отменить значения всех параметров и установить сигнал обратно в SIGKILL.
ФАЙЛЫ
- /proc
-
местонахождение файловой системы proc
ПРИМЕРЫ
- fuser -km /home
-
завершить все процессы, обращающиеся к файловой системе /home любым
способом.
- if fuser -s /dev/ttyS1; then :; else команда; fi
-
вызвать команду, если нет процессов, использующих /dev/ttyS1.
- fuser telnet/tcp
-
показать все процессы на (локальном) порту 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).