Aflați cum să utilizați comanda Fuser cu exemple în Linux


Una dintre cele mai importante sarcini în administrarea sistemelor Linux este managementul proceselor. Acesta implică mai multe operațiuni sub monitorizare, procese de semnalizare, precum și stabilirea priorităților proceselor pe sistem.

Există numeroase instrumente/utilități Linux concepute pentru monitorizarea/tratarea proceselor, cum ar fi killall, nice împreună cu multe altele.

În acest articol, vom descoperi cum să găsim procese folosind un utilitar Linux ingenios numit fuser.

fuser este un utilitar de linie de comandă simplu, dar puternic, menit să localizeze procesele pe baza fișierelor, directoarelor sau soclului pe care un anumit proces îl accesează. Pe scurt, ajută un utilizator de sistem să identifice procesele folosind fișiere sau socket-uri.

Cum se utilizează fuzorul în sistemele Linux

Sintaxa convențională pentru utilizarea fuser este:

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

Mai jos sunt câteva exemple de utilizare a fuserului pentru a localiza procesele din sistemul dvs.

Găsiți ce proces accesează un director

Rularea comenzii fuser fără nicio opțiune va afișa PID-urile ale proceselor care accesează în prezent directorul de lucru curent.

$ fuser .
OR
$ fuser /home/tecmint

Pentru o ieșire mai detaliată și mai clară, activați -v sau --verbose după cum urmează. În rezultat, fuser tipărește numele directorului curent, apoi coloanele proprietarului procesului (USER), ID-ului procesului (PID) , tipul de acces (ACCES) și comanda (COMANDĂ) ca în imaginea de mai jos.

$ fuser -v

Sub coloana ACCES, veți vedea tipurile de acces indicate de următoarele litere:

  1. c – directorul curent
  2. e – un fișier executabil rulat
  3. f – deschideți fișierul, totuși, f este omis în rezultat
  4. F – deschideți fișierul pentru scriere, F este de asemenea exclus din rezultat
  5. r – director rădăcină
  6. m – fișier mmap’ed sau bibliotecă partajată

Găsiți ce proces accesează un sistem de fișiere

Apoi, puteți determina ce procese accesează fișierul dvs. ~.bashrc astfel:

$ fuser -v -m .bashrc

Opțiunea, -m NAME sau --mount NAME înseamnă denumirea tuturor proceselor care accesează fișierul NAME. În cazul în care scrieți un director ca NUME, acesta este schimbat spontan în NUME/, pentru a utiliza orice sistem de fișiere care este posibil montat pe acel director.

Cum să omorâți și să semnalizați procesele folosind un fuzor

În această secțiune, vom lucra la utilizarea fuser pentru a distruge și a trimite semnale către procese.

Pentru a distruge un proces care accesează un fișier sau un socket, utilizați opțiunea -k sau --kill astfel:

$ sudo fuser -k .

Pentru a opri interactiv un proces, în cazul în care vi se cere să vă confirmați intenția de a opri procesele care accesează un fișier sau un socket, utilizați opțiunea -i sau --interactive:

$ sudo fuser -ki .

Cele două comenzi anterioare vor ucide toate procesele care accesează directorul curent, semnalul implicit trimis proceselor este SIGKILL, cu excepția cazului în care se folosește -SIGNAL .

Puteți enumera toate semnalele folosind opțiunile -l sau --list-signals după cum urmează:

$ sudo fuser --list-signals 

Prin urmare, puteți trimite un semnal către procese ca în următoarea comandă, unde SIGNAL este oricare dintre semnalele enumerate în rezultatul de mai sus.

$ sudo fuser -k -SIGNAL

De exemplu, această comandă de mai jos trimite semnalul HUP către toate procesele care au directorul /boot deschis.

$ sudo fuser -k -HUP /boot 

Încercați să citiți pagina de manual fuser pentru opțiuni avansate de utilizare, informații suplimentare și mai detaliate.

Asta este deocamdată, ne puteți contacta prin intermediul secțiunii de feedback de mai jos pentru orice asistență de care aveți nevoie sau sugestii pe care doriți să le faceți.