Одной из самых важных задач в системном администрировании Linux является управление процессами, которое включает в себя несколько операций, таких как Мониторинг, сигнализация процессов и установка приоритетов процессов в системе.
Существует множество инструментов/утилит Linux, предназначенных для мониторинга и работы с процессами, таких как top, ps, pgrep, kill, killall, nice и многие другие.
В этой статье мы расскажем, как найти процессы с помощью мощной и простой Утилиты Linux под названием fuser.
Что такое fuser в Linux?
fuser – это простая, но мощная утилита командной строки, предназначенная для поиска процессов на основе файлов, каталогов или сокетов, к которым обращается конкретный процесс. Короче говоря, она помогает пользователю системы определить, какие процессы используют определенные файлы или сокеты.
Основной синтаксис для использования fuser следующий:
fuser [options] [file|socket] fuser [options] -SIGNAL [file|socket] fuser -l
Поиск процесса, обращающегося к каталогу
Выполнение команды fuser без каких-либо опций отображает PID процессов, которые в данный момент обращаются к текущему рабочему каталогу.
fuser . OR fuser /home/tecmint

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

В колонке ACCESS вы увидите типы доступа, обозначенные следующими буквами:
c– текущий каталог.e– запускаемый исполняемый файл.f– открытый файл, однакоfв выводе отсутствует.F– открытый файл для записи,Fтакже исключен из вывода.r– корневой каталог.m– mmaped-файл или общая библиотека.
Поиск процесса, обращающегося к файлу или файловой системе
Чтобы определить, какие процессы обращаются к вашему файлу ~/.bashrc, выполните команду:
fuser -v -m .bashrc
Опция -m NAME или --mount NAME показывает все процессы, обращающиеся к данному файлу или каталогу. Если вы передаете каталог в качестве NAME, он автоматически добавляет / для ссылки на файловую систему, смонтированную в этом каталоге.

Поиск процесса, использующего определенный порт
Еще один практический случай – определение того, какой процесс использует определенный сетевой порт, что особенно полезно для отладки конфликтов служб.
sudo fuser 80/tcp OR sudo fuser -v 80/tcp
Здесь показан PID процесса, использующего TCP-порт 80. Добавьте -v для получения подробной информации.

Как убивать и сигнализировать процессы с помощью fuser
Чтобы убить все процессы, обращающиеся к файлу или сокету, используйте опцию -k или --kill.
sudo fuser -k .
Для интерактивного уничтожения процесса, когда вас просят подтвердить намерение убить процессы, обращающиеся к файлу или сокету, используйте опцию -i или --interactive.
sudo fuser -ki .

Две предыдущие команды убьют все процессы, обращающиеся к вашей текущей директории; по умолчанию процессам посылается сигнал SIGKILL, за исключением случаев, когда используется -SIGNAL.
Список всех доступных сигналов в Linux
Вы можете перечислить все сигналы, используя опции -l или --list-signals, как показано ниже.
sudo fuser --list-signals

Отправка определенного сигнала процессам
Таким образом, вы можете послать процессам сигнал, как в следующей команде, где SIGNAL – это любой из сигналов, перечисленных в выводе выше.
sudo fuser -k -SIGNAL
Например, чтобы послать процессам сигнал HUP, обратившись к /boot.
sudo fuser -k -HUP /boot
Для расширенного использования и более подробной информации обратитесь к странице руководства fuser.
man fuser
Заключение
Команда fuser может быть не первым инструментом, который приходит на ум при управлении процессами, но это скрытая жемчужина для любого пользователя Linux или системного администратора. Она идеально подходит для выяснения того, какие процессы используют определенные файлы, каталоги или порты, и дает вам возможность напрямую с ними разобраться.
Если вы работаете с файлами, каталогами или сетевыми службами в системе Linux, изучение fuser на 100 % стоит вашего времени.




Комментарии (0)