Provided by: psmisc_23.6-1_amd64
ИМЯ
fuser - ищет процессы, использующие указанные файлы или сокеты
ОБЗОР
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n ОБЛАСТЬ] [ -k [-i] [-M] [-w] [-СИГНАЛ] ] ИМЯ … 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 ИМЯ, --mount ИМЯ В ИМЕНИ указывается файл в смонтированной файловой системе или смонтированное блочное устройство. Показываются все процессы, использующие все файлы на файловой системе. Если указан каталог, то он автоматически изменяется на ИМЯ/, чтобы использовать все файловые системы, которые могут быть смонтированы в этот каталог. -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.
ФАЙЛЫ
/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 will not see block devices mounted by processes in a different mount namespace. This is due to the device ID shown in the process' file descriptor table being from the process namespace, not fuser's; meaning it won't match.
ДЕФЕКТЫ
fuser -m /dev/sgX покажет (или завершит, если указан -k) все процессы, даже если у вас нет этого настроенного устройства. Также, для этого могут быть другие устройства. При параметре монтирования -m найдутся все файлы на том же устройстве, что и указанный файл, дополнительно укажите параметр -M, если вы подразумевали только точку монтирования.
СМОТРИТЕ ТАКЖЕ
kill(1), killall(1), lsof(8), mount_namespaces(7), pkill(1), ps(1), kill(2).