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).