Въведение
Командата fuserе помощна програма на Linux, предназначена да открие кой процес използва даден файл, директория или сокет. Той също така предоставя информация за потребителя, който притежава този процес, и вида на достъпа.Как да използвате помощната програма за изпичане
Можете да прегледате fuser страницата с ръководство , за да получите преглед на всички опции, които да използвате с fuser. Можете също така да стартирате fuserсамостоятелно без никакви опции, за да получите преглед на fuserсинтаксиса:
Code:
fuser
No process specification given
Usage: fuser [-fMuv] [-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)
-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 се използва за получаване на повече изходни данни, така че потребителят да може да наблюдава какво fuser прави. Стартирайте fuser в текущата директория, .като включите -v опцията:
Code:
fuser -v .
В този случай единственият процес, който се изпълнява в тази директория, е интерактивната bashобвивка, от която изпълнявате команди в момента.Output
USER PID ACCESS COMMAND
/home/sammy: sammy 17604 ..c.. bash
Когато се изпълнява в подробен режим , fuser помощната програма дава информация за USER, и на даден процес. Символът под показва вида на достъпа, в този случай означава текущата директория. Има и други видове достъп, като изпълняван изпълним файл, основна директория , отворен файл и приложен файл или споделена библиотека.PID ACCESS COMMAND c ACCESS
Как да намерите процеси с помощта на мрежови сокети
Може също да се наложи да търсите процеси, използвайки TCP и UDP сокети. За да демонстрирате този пример, първо ще използвате, nc за да създадете TCP слушател на порт 8002, така че да има работещ процес, който можете да наблюдавате:Това ще блокира терминала, докато работи. В друг терминален прозорец използвайте, fuser за да намерите процеса, работещ на TCP порт 8002 с -n опцията:nc -l -p 8002
fuser -v -n tcp 8002
Output
USER PID ACCESS COMMAND
8002/tcp: sammy 17985 F.... nc
Забележка: По подразбиране fuser инструментът ще проверява както IPv4, така и IPv6 сокети, но можете да промените това с опциите -4 и -6, за да проверявате съответно само IPv4 или само IPv6 връзки.
Този резултат показва, че идентификаторът на процеса ( PID) на процеса, използващ netcat, е 17985 и командата, която е използвана за стартирането му, е „nc“. Идентификаторът на процеса (PID) може да се използва по много начини, включително за спиране или убиване на работещ процес. Можете да научите повече за управлението на процеси, като прочетете Как да използвате ps, kill и nice за управление на процеси в Linux . Можете също да fuser го използвате, за да убивате процеси, изпълнявани на определени портове, като използвате -k флага:
fuser -k 8002/tcp
Ако се върнете към първия прозорец на терминала, ще забележите, че програмата nc е убита и върната в обвивката.Output
8002/tcp: 18056
Помощната програма за изпичане може да се използва и за изпращане на специфични сигнали към процес. Когато се използва с опцията -k, командата за изпичане изпраща сигнал KILL към процес. Има много други сигнали, които могат да бъдат изпратени до конкретен работещ процес. Можете да ги изброите с fuser -l:
fuser -l
Output
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
Заключение
В тази статия научихте някои примерни употреби на fuse r за наблюдение на използвани портове и директории в Linux система. fuser може да бъде особено полезно, когато се опитвате да разберете какви неизвестни процеси може да се изпълняват във вашата система.
Last edited: