FUSER(1)

NUME
fuser - identifică procesele care utilizează fișiere sau socluri

REZUMAT
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n spațiu_nume] [ -k [-i] [-M] [-w] [-SEMNAL] ] nume ...
fuser -l
fuser -V

DESCRIERE
fuser afișează PID-urile proceselor care utilizează fișierele sau sistemele de fișiere specificate. În modul de afișare implicit, fiecare nume de fișier este urmat de o literă care indică tipul de acces:

    c   directorul curent.
    e   executabil în curs de executare.
    f   fișier deschis.. f este omis în modul de afișare implicit.
    F   fișier deschis pentru scriere. F este omis în modul de afișare implicit.
    r   directorul rădăcină.
    m   fișier alocat cu «mmap» sau bibliotecă partajată.
    .   Substituent, omis în modul de afișare implicit.

fuser returnează un cod de returnare diferit de zero dacă niciunul dintre fișierele specificate nu este accesat sau în cazul unei erori fatale. Dacă a fost găsit cel puțin un fișier accesat, fuser returnează zero.

Pentru a căuta procese folosind socluri TCP și UDP, spațiul de nume corespunzător trebuie să fie selectat cu opțiunea -n. În mod implicit, fuser va căuta atât în soclurile IPv6, cât și în soclurile IPv4. Pentru a modifica comportamentul implicit, utilizați opțiunile -4 și -6. Soclurile pot fi specificate prin portul local și de la distanță și prin adresa de la distanță. Toate câmpurile sunt opționale, dar virgulele din fața câmpurilor lipsă trebuie să fie prezente:

[port_local][,[gazdă_rmt][,[port_rmt]]]     notă: rmt = la
distanță(remote)

Puteți utiliza fie valori simbolice, fie valori numerice pentru adresele IP și numerele de porturi.

fuser afișează doar PID-urile la ieșirea standard, orice altceva este trimis către ieșirea de eroare standard.

OPȚIUNI

-a, --all
    Afișează toate fișierele specificate în linia de comandă. În mod implicit, sunt afișate doar fișierele care sunt accesate de cel puțin un proces.

-c  La fel ca și opțiunea -m, utilizată pentru compatibilitatea cu POSIX.

-f  Ignorată în tăcere, utilizată pentru compatibilitatea cu POSIX.

-k, --kill
    Omoară procesele care accesează fișierul. Cu excepția cazului în care este schimbat cu opțiunea -SIGNAL, semnalul SIGKILL este semnalul trimis procesului. Un proces fuser nu se omoară pe el însuși niciodată, dar poate omorî alte procese fuser. ID-ul de utilizator efectiv al procesului care execută fuser este reamplasat cu ID-ul de utilizator real înainte de a încerca să ucidă.

-i, --interactive
    Cere utilizatorului confirmarea înainte de a omorî un proces. Această opțiune este ignorată în tăcere dacă opțiunea -k nu este deasemeni prezentă.

-I, --inode
    Pentru spațiul de nume fișier, toate comparațiile trebuie să se bazeze pe nodul-i al fișierelor specificate și niciodată pe numele fișierelor, chiar și pe sistemele de fișiere bazate pe rețea.

-l, --list-signals
    Listează toate numele semnalelor cunoscute.

-m NUME, --mount NUME
    NUME specifică un fișier pe un sistem de fișiere montat sau un dispozitiv bloc care este montat. Sunt listate toate procesele care accesează fișierele din acel sistem de fișiere. Dacă este specificat un director, acesta este schimbat automat în NUME/ pentru a utiliza orice sistem de fișiere care ar putea fi montat pe acel director.

-M, --ismountpoint
    Solicitarea va fi îndeplinită numai dacă NUME specifică un punct de montare. Aceasta este o centură de siguranță neprețuită care vă împiedică să ucideți mașina dacă NUME se întâmplă să nu fie un sistem de fișiere.

-w  Omoară numai procesele care au acces de scriere. Această opțiune este ignorată în tăcere dacă opțiunea -k nu este deasemeni prezentă.

-n SPAȚIU_NUME, --namespace  SPAȚIU_NUME
    Selectează un alt spațiu de nume. Sunt acceptate spațiile de nume fișier (nume de fișiere, implicit), udp (porturi UDP locale) și tcp (porturi TCP locale). Pentru porturi, poate fi specificat fie numărul portului, fie numele simbolic. Dacă nu există ambiguitate, poate fi folosită notația scurtă nume/spațiu (de exemplu, 80/tcp).

-s, --silent
    Funcționare silențioasă. Opțiunile -u și -v sunt ignorate în acest mod. Opțiunea -a nu trebuie să fie utilizată cu opțiunea -s.

-SEMNAL
    Utilizează semnalul specificat în loc de SIGKILL atunci când omoară procesele. Semnalele pot fi specificate fie după nume (de exemplu, -HUP), fie după număr (de exemplu, -1). Această opțiune este ignorată în tăcere dacă nu este utilizată opțiunea -k.

-u, --user
    Adaugă numele de utilizator al proprietarului procesului la fiecare PID.

-v, --verbose
    Modul informație-detaliată. Procesele sunt afișate într-un stil asemănător comenzii ps. Câmpurile PID, UTILIZATOR și COMANDĂ sunt similare cu cele ale ps. ACCES arată modul în care procesul accesează fișierul. Modul informație-detaliată va afișa, de asemenea, când un anumit fișier este accesat ca punct de montare, export knfs sau fișier de spațiu de interschimb „swap”. În acest caz, nucleul este afișat în loc de PID.

-V, --version
    Afișează informațiile despre versiune.

-4, --ipv4
    Caută doar socluri IPv4. Această opțiune nu trebuie utilizată cu opțiunea -6 și are efect doar cu spațiile de nume tcp și udp.

-6, --ipv6
    Caută doar socluri IPv6. Această opțiune nu trebuie utilizată cu opțiunea -4 și are efect doar cu spațiile de nume tcp și udp.

FIȘIERE

/proc
    locația sistemului de fișiere proc

EXEMPLE

fuser -km /home
    omoară toate procesele care accesează sistemul de fișiere „/home” în orice fel (citire, scriere, creare, .. etc.).

if fuser -s /dev/ttyS1; then :; else comanda; fi
    invocă comanda dacă niciun alt proces nu utilizează /dev/ttyS1.

fuser telnet/tcp
    afișează toate procesele de la portul (local) TELNET.

RESTRICȚII
Procesele care accesează același fișier sau sistem de fișiere de mai multe ori în același mod sunt afișate o singură dată.

Dacă același obiect este specificat de mai multe ori în linia de comandă, unele dintre aceste intrări pot fi ignorate.

fuser poate obține doar informații parțiale, cu excepția cazului în care rulează cu privilegii. În consecință, fișierele deschise de procese aparținând altor utilizatori pot să nu fie listate și executabilele pot să fie clasificate doar ca asociate cu fișierul.

fuser nu poate raporta niciun proces pentru care nu are permisiunea de a căuta în tabelul descriptor al fișierului. Cel mai frecvent caz în care apare această problemă este atunci când se caută socluri TCP sau UDP în timp ce fuser rulează ca utilizator non-root. În acest caz, fuser va raporta că nu există acces.

Instalarea lui fuser cu SUID root va evita problemele asociate cu informațiile parțiale, dar poate fi nedorită din motive de securitate și confidențialitate.

Spațiile de nume udp și tcp și soclurile de domeniu UNIX nu pot fi căutate cu nuclee mai vechi de 1.3.78.

Accesările de către nucleu sunt afișate doar cu opțiunea -v.

Opțiunea -k funcționează numai asupra proceselor. Dacă utilizatorul este nucleul, fuser va afișa un sfat, dar nu va lua nicio măsură în afară de aceasta.

fuser nu va vedea dispozitivele bloc montate de procese într-un spațiu de nume de montare diferit. Acest lucru se datorează faptului că ID-ul dispozitivului afișat în tabelul descriptor al fișierului procesului provine din spațiul de nume al procesului, nu din cel al «fuser»; adică nu se va potrivi.

ERORI

fuser -m /dev/sgX va afișa (sau va ucide cu opțiuneal -k) toate procesele, chiar dacă nu aveți acel dispozitiv configurat. Pot exista și alte dispozitive pentru care face acest lucru.

Opțiunea de montare -m se va potrivi cu orice fișier din același dispozitiv cu fișierul specificat, utilizați și opțiunea -M dacă doriți să specificați doar punctul de montare.

fuser nu va potrivi fișierele copiate în memorie, cum ar fi bibliotecile partajate ale unui proces, dacă acestea se află pe un sistem de fișiere btrfs(5) din cauza faptului că ID-urile de dispozitiv sunt diferite pentru stat(2) și /proc/<PID>/maps.

CONSULTAȚI ȘI
kill(1), killall(1), stat(2), btrfs(5), lsof(8), mount_namespaces(7), pkill(1), ps(1), kill(2).