Lær hvordan du bruker 'fuser'-kommando med eksempler i Linux


En av de viktigste oppgavene i Linux-systemadministrasjon er prosessledelse. Det involverer flere operasjoner under overvåking, signaleringsprosesser samt å sette prosessprioriteringer på systemet.

Det er mange Linux-verktøy/verktøy designet for overvåking/håndtering av prosesser som topp, ps, pgrep, kill, killall, nice kombinert med mange andre.

I denne artikkelen skal vi avdekke hvordan du finner prosesser ved å bruke et ressurssterkt Linux-verktøy kalt fuser.

Foreslått lesing: Finn de mest kjørende prosessene etter høyeste minne- og CPU-bruk

fuser er et enkelt, men kraftig kommandolinjeverktøy beregnet på å finne prosesser basert på filene, katalogene eller kontakten en bestemt prosess har tilgang til. Kort sagt, det hjelper en systembruker å identifisere prosesser ved hjelp av filer eller sockets.

Hvordan bruke fuser i Linux-systemer

Den konvensjonelle syntaksen for bruk av fuser er:

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

Nedenfor er noen eksempler på bruk av fuser for å finne prosesser på systemet ditt.

Finn hvilken prosess som får tilgang til en katalog

Hvis du kjører kommandoen fuser uten noe alternativ, vises PID-ene for prosesser som for øyeblikket har tilgang til den gjeldende arbeidskatalogen din.

fuser .
OR
fuser /home/tecmint

For en mer detaljert og tydelig utgang, aktiver -v eller --verbose som følger. I utdataene skriver fuser ut navnet på gjeldende katalog, deretter kolonnene til prosesseieren (USER), prosess-ID (PID) , tilgangstypen (ACCESS) og kommandoen (COMMAND) som i bildet nedenfor.

fuser -v

Under TILGANG-kolonnen vil du se tilgangstyper merket med følgende bokstaver:

  1. c – gjeldende katalog
  2. e – en kjørbar fil som kjøres
  3. f – åpen fil, men f er utelatt i utdataene
  4. F – åpen fil for skriving, F er også ekskludert fra utdataene
  5. r – rotkatalog
  6. m – mmap’et fil eller delt bibliotek

Finn hvilken prosess som får tilgang til et filsystem

Deretter kan du bestemme hvilke prosesser som får tilgang til ~.bashrc-filen din slik:

fuser -v -m .bashrc

Alternativet -m NAME eller --mount NAME betyr navngi alle prosesser som har tilgang til filen NAME. I tilfelle du staver ut katalogen som NAME, endres den spontant til NAME/, for å bruke et hvilket som helst filsystem som muligens er montert på den katalogen.

Foreslått lesing: Finn de 15 beste prosessene etter minnebruk i Linux

Hvordan drepe og signalisere prosesser ved hjelp av fuser

I denne delen skal vi jobbe gjennom å bruke fuser for å drepe og sende signaler til prosesser.

For å drepe en prosess som får tilgang til en fil eller socket, bruk -k eller --kill-alternativet slik:

sudo fuser -k .

For interaktivt å drepe en prosess, der du blir bedt om å bekrefte intensjonen din om å drepe prosessene som får tilgang til en fil eller socket, bruk -i eller --interactive alternativet:

sudo fuser -ki .

De to foregående kommandoene vil drepe alle prosesser som får tilgang til din nåværende katalog, standardsignalet som sendes til prosessene er SIGKILL, bortsett fra når -SIGNAL brukes .

Foreslått lesing: En guide til Kill-, Pkill- og Killall-kommandoer i Linux

Du kan liste alle signalene ved å bruke -l eller --list-signals alternativene som nedenfor:

sudo fuser --list-signals 

Derfor kan du sende et signal til prosesser som i neste kommando, hvor SIGNAL er et av signalene som er oppført i utgangen ovenfor.

sudo fuser -k -SIGNAL

For eksempel sender denne kommandoen nedenfor HUP-signalet til alle prosesser som har /boot-katalogen åpen.

sudo fuser -k -HUP /boot 

Prøv å lese gjennom man-siden for fuser for avanserte bruksalternativer, mer og mer detaljert informasjon.

Det er det for nå, du kan nå oss ved hjelp av tilbakemeldingsdelen nedenfor for all hjelp du trenger eller forslag du ønsker å komme med.