fuser

fuser

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

Страница руководства fuser

При запуске fuser без каких либо опций, получаем краткую инструкцию:

fuser
No process specification given
Usage: fuser [-fIMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE]
             [-k [-i] [-SIGNAL]] NAME...
       fuser -l
       fuser -V
Show which processes use the named files, sockets, or filesystems.
 
  -a,--all              display unused files too
  -i,--interactive      ask before killing (ignored without -k)
  -I,--inode            use always inodes to compare files
  -k,--kill             kill processes accessing the named file
  -l,--list-signals     list available signal names
  -m,--mount            show all processes using the named filesystems or
                        block device
  -M,--ismountpoint     fulfill request only if NAME is a mount point
  -n,--namespace SPACE  search in this name space (file, udp, or tcp)
  -s,--silent           silent operation
  -SIGNAL               send this signal instead of SIGKILL
  -u,--user             display user IDs
  -v,--verbose          verbose output
  -w,--writeonly        kill only processes with write access
  -V,--version          display version information
  -4,--ipv4             search IPv4 sockets only
  -6,--ipv6             search IPv6 sockets only
  -                     reset options
 
  udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

fuser лучше использовать с опцией -v, которая запускает инструмент в режиме verbose. Опция verbose используется для получения большего количества вывода, чтобы пользователь мог наблюдать за тем, как работает fuser. Запустим fuser в текущем каталоге ., включив опцию -v:

fuser -v .
                     USER        PID ACCESS COMMAND
/home/nevvad:        nevvad      2566430 ..c.. bash

В данном случае, единственный процесс, работающий в этой директории – это интерактивной оболочки bash, из которой мы сейчас запускаем команды.

При запуске в режиме verbose, утилита fuser выдает информацию о USER, PID, ACCESS и COMMAND процесса. Символ c в строке ACCESS показывает тип доступа, в данном случае это текущий каталог. Существуют и другие типы доступа, такие как: исполняемый файл, корневой каталог, открытый файл, сопоставленный файл или общая библиотека.

Нам может понадобиться поиск процессов с помощью TCP и UDP сокетов. Для начала, чтобы продемонстрировать этот пример, мы создадим TCP-приемника на порту 8002 с помощью утилиты nc, это будет тестовый процесс для наблюдения:

nc -l -p 8002

Запуск nc заблокирует терминал. В другом окне терминала используйте fuser с опцией -n, чтобы найти процесс, запущенный на TCP-порту 8002:

fuser -v -n tcp 8002
                     USER        PID ACCESS COMMAND
8002/tcp:            nevvad    2634603 F.... nc

Note Bene! По умолчанию, fuser будет проверять как IPv4 сокеты, так и IPv6. Но, мы можем изменить это поведение, с помощью параметров -4 и -6, для проверки только соединений IPv4 или только IPv6 соответственно.

Вывод выше, показывает, что идентификатор процесса (PID) процесса с помощью netcat равен 2634603, а команда, которая использовалась для его запуска – nc. Идентификатор процесса (PID) можно использовать различными способами, в том числе для остановки или уничтожения запущенного процесса. Также, мы можем использовать сам fuser, для уничтожения процессов, запущенных на определенных портах, используя флаг -k:

fuser -k 8002/tcp
8002/tcp:            2634603

Если мы вернемся в окно первого терминала, то увидим, что программа nc была завершена и возвращена в оболочку.

Утилиту fuser, можно использовать для отправки определенных сигналов процессу. При использовании опции -k команда fuser посылает процессу сигнал KILL. Существует множество других сигналов, которые могут быть посланы конкретному запущенному процессу. Их можно перечислить с помощью опции -l:

fuser -l
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
  • fuser.txt
  • Последнее изменение: 2022/11/02 10:48
  • admin