Поиск по сайту:

Узнайте, как использовать команду «fuser» с примерами в Linux


Одной из наиболее важных задач системного администрирования Linux является управление процессами. Он включает в себя несколько операций мониторинга, процессов сигнализации, а также установку приоритетов процессов в системе.

Существует множество инструментов/утилитов Linux, предназначенных для мониторинга/управления процессами, таких как top, ps, pgrep, kill, killall, nice в сочетании со многими другими.

В этой статье мы узнаем, как найти процессы с помощью полезной утилиты Linux под названием fuser.

Рекомендуется к прочтению: Найдите наиболее запущенные процессы по максимальному использованию памяти и процессора

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

Как использовать фьюзер в системах Linux

Обычный синтаксис использования fuser:

fuser [options] [file|socket]
fuser [options] -SIGNAL [file|socket]
fuser -l 

Ниже приведены несколько примеров использования fuser для поиска процессов в вашей системе.

Найдите, какой процесс обращается к каталогу

Запуск команды fuser без каких-либо опций отобразит PID процессов, которые в данный момент обращаются к вашему текущему рабочему каталогу.

fuser .
OR
fuser /home/tecmint

Для более подробного и четкого вывода включите -v или --verbose следующим образом. В выводе fuser выводит имя текущего каталога, затем столбцы владельца процесса (USER), идентификатор процесса (PID). , тип доступа (ACCESS) и команду (COMMAND), как показано на рисунке ниже.

fuser -v

В столбце ДОСТУП вы увидите типы доступа, обозначенные следующими буквами:

  1. c – текущий каталог
  2. e – запускаемый исполняемый файл
  3. f – открыть файл, однако f не отображается в выводе
  4. F – открыть файл для записи, F также исключается из вывода
  5. r – корневой каталог
  6. m – файл с отображением mmap или общая библиотека

Найдите, какой процесс обращается к файловой системе

Далее вы можете определить, какие процессы обращаются к вашему файлу ~.bashrc следующим образом:

fuser -v -m .bashrc

Опция -m NAME или --mount NAME означает имя всех процессов, обращающихся к файлу NAME. Если вы укажете каталог как NAME, он автоматически изменится на NAME/, чтобы использовать любую файловую систему, которая возможно смонтирована в этом каталоге.

Рекомендуется к прочтению: Найдите 15 процессов, которые чаще всего используют память в Linux

Как завершать процессы и сигнализировать о них с помощью фьюзера

В этом разделе мы поработаем над использованием fuser для завершения процессов и отправки сигналов им.

Чтобы завершить процесс, обращающийся к файлу или сокету, используйте опцию -k или --kill следующим образом:

sudo fuser -k .

Чтобы интерактивно завершить процесс, когда вас просят подтвердить ваше намерение завершить процессы, обращающиеся к файлу или сокету, используйте опцию -i или --interactive:

sudo fuser -ki .

Две предыдущие команды уничтожат все процессы, имеющие доступ к вашему текущему каталогу. Сигнал по умолчанию, отправляемый процессам, — SIGKILL, за исключением случаев, когда используется -SIGNAL. .

Рекомендуется к прочтению: Руководство по командам Kill, Pkill и Killall в Linux

Вы можете перечислить все сигналы, используя параметры -l или --list-signals, как показано ниже:

sudo fuser --list-signals 

Таким образом, вы можете отправить сигнал процессам, как в следующей команде, где SIGNAL — это любой из сигналов, перечисленных в выводе выше.

sudo fuser -k -SIGNAL

Например, эта команда ниже отправляет сигнал HUP всем процессам, у которых открыт каталог /boot.

sudo fuser -k -HUP /boot 

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

На данный момент это все, вы можете связаться с нами через раздел обратной связи ниже, чтобы получить любую помощь, которая вам может понадобиться, или предложения, которые вы хотите сделать.