GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Linux fusore con esempi

Introduzione

Il fuser comando (Trova UTENTE ) è uno strumento di gestione dei processi che identifica i processi utilizzando un file, una directory o un socket. Inoltre, fuser fornisce informazioni sul titolare del processo e sul tipo di accesso e termina i processi in questione.

Questo articolo spiegherà come utilizzare il fuser Comando Linux con esempi.

Prerequisiti

  • Un sistema che esegue Linux.
  • Accesso al terminale.
  • Privilegi di sudo.

Sintassi del fusore Linux

Il fuser comando ha alcuni possibili tipi di sintassi:

  • Solo opzioni . Esegui un'azione non specifica per una directory, un file o un socket di destinazione.
fuser [option]
  • Specifica directory, file o socket . Individua tutti i processi in esecuzione nel percorso di destinazione ed elenca i relativi PID.
fuser [file_or_directory_or_socket]
  • Specifica opzioni e directory, file o socket . Modificare la ricerca ed eseguire un'azione specifica su un processo. Ad esempio, terminalo.
fuser [options] [file_or_directory_or_socket]
  • Nessuna opzione . Mostra "Nessuna specifica di processo fornita" messaggio e la schermata della guida.

Opzioni del fusore Linux

Il fuser Il comando funziona anche quando specifichi solo un file, una directory o un socket. Tuttavia, l'utilizzo delle opzioni fornisce risultati più dettagliati.

La tabella seguente mostra i fuser più comuni opzioni:

Comando Descrizione
-v , --verbose Mostra i campi USER, PID, ACCESS e COMMAND invece di elencare solo i PID.
-n , --namespace Cambia lo spazio dei nomi dal valore predefinito a quello nuovo.
-m , --mount Specifica un file che appartiene a un file ed elenca ogni processo che accede ai file in quel filesystem.
-k , --kill Uccide i processi.
-i , --interactive Chiede conferma all'utente prima di terminare un processo.
-[SIGNAL] Uccide i processi con il segnale specificato invece di quello predefinito (SIGKILL).
-l , --list-signals Elenca tutti i nomi dei segnali che possono essere utilizzati da fuser .
-a , --all Mostra i file specificati sul comando a cui si accede da almeno un processo.
-u , --user Aggiunge il nome utente del proprietario del processo a ciascun PID.
-4 , --ipv4 Cerca solo i socket IPv4.
-6 , --ipv6 Cerca solo i socket IPv6.
-M , --ismountpoint Uccide i processi solo se NAME specifica un punto di montaggio.
-w Chiudi solo i processi con accesso in scrittura.
-s , --silent Rappresenta un'operazione silenziosa che ignora -u e -v opzioni.
- Ripristina tutte le opzioni.

Esempi di comandi del fusore Linux

Il fuser è lo strumento Linux definitivo per la gestione dei processi. Per ottenere il massimo dallo strumento, fai riferimento alle sezioni seguenti per visualizzare fuser comuni esempi.

Individuare i processi in una directory

Il fuser di base il ruolo è identificare quali processi stanno utilizzando i file in una directory particolare. La sintassi è:

fuser [directory]

Ad esempio, per elencare i processi in esecuzione nella directory corrente, utilizza il punto (. ) :

fuser .

L'output elenca i PID di tutti i processi che accedono alla directory corrente.

Il terminale mostra la Casa cartella come quella corrente. Pertanto, utilizzando quel percorso di cartella viene stampato lo stesso output:

fuser /home/sara

Per stampare un output più leggibile, utilizza il -v opzione (dettagliata) prima della directory:

fuser -v .

Lo stesso comando funziona su qualsiasi altra directory. Ad esempio, identifica i processi in WhatIsThis directory collocata nella Home cartella con:

sudo fuser -v /home/sara/WhatIsThis

Nota: Utilizzando sudo stampa più processi, inclusi quelli di proprietà di root.

Il fuser -v . l'output è dettagliato e include le seguenti colonne:

  • UTENTE - Il titolare del processo.
  • PID - L'ID del processo.
  • ACCESSO - Il tipo di accesso.
  • COMANDO - Il comando che esegue il processo.

Negli esempi precedenti, la colonna di accesso mostra il simbolo c , che presenta la directory corrente. Altri tipi e simboli di accesso sono:

  • e - Eseguibile in esecuzione.
  • f - Apri file.
  • F - File aperto per la scrittura.
  • r - Directory principale.
  • mi - File mappato o libreria condivisa.

Elenca i processi utilizzando un file

Trova i processi che accedono a un file eseguendo fuser con un percorso al nome del file.

fuser -v [filename]

Ad esempio, guarda i processi che utilizzano this_is_a_new_text file nella Home directory con:

sudo fuser -v /home/sara/this_is_a_new_text

L'output mostra:

  • Root come proprietario del processo.
  • PID del processo.
  • Il tipo di accesso f che rappresenta un file aperto.
  • Il comando less accedendo al file.

Il fuser il comando funziona anche su un eseguibile, come PYTHON3 nella directory bin:

 sudo fuser -v /bin/python3

Il comando restituisce:

  • Root come proprietario del processo.
  • PID del processo.
  • Il simbolo di accesso e , indicando che il file è un eseguibile.
  • Il comando networkd-dispat eseguire il file.

Individuare i processi utilizzando un socket

Per trovare i processi che utilizzano socket TCP e UDP, utilizzare:

fuser -v -n [socket_type] [port]

Oppure:

fuser -v [port]/[socket_type]

Il -n flag seleziona il tipo di socket corrispondente (TCP o UDP) come spazio dei nomi. Ad esempio, identifica il processo in esecuzione sulla porta TCP 631 con:

sudo fuser -v -n tcp 631

La sintassi più breve è:

sudo fuser -v 631/tcp

In entrambi i casi, il comando stampa il PID del processo, F come tipo di accesso e il cupsd comando.

Trova processo che accede a un filesystem

Usa il -m flag con fuser per identificare tutti i processi che accedono a un filesystem prendendo di mira un file appartenente a quel sistema.

Ad esempio, per elencare tutti i file e i processi in esecuzione nel filesystem in cui this_is_a_new_text il file appartiene, inserisci:

sudo fuser -v -m this_is_a_new_text

Processi di uccisione

Il comando del fusore con il -k flag termina i processi in un percorso selezionato. Ad esempio, un processo sta eseguendo this_is_a_new_text file nella Home directory. Il file viene aperto con il comando less.

Usa fuser -k per terminare solo il processo che accede a questo file, non tutti i processi che utilizzano la Home directory:

sudo fuser -v -k /home/sara/this_is_a_new_text

Il terminale non stampa nulla dopo nessuno dei due comandi. Inoltre, il targeting di un file con fuser inoltre non stampa alcun risultato. Ciò significa che il processo è terminato:

sudo fuser -v /home/sara/this_is_a_new_text

Per confermarlo, controlla this_is_a_new_text file precedentemente aperto con less :

L'output mostra il messaggio ucciso e una nuova riga terminale vuota, a conferma che il processo è terminato.

Uccidi i processi in modo interattivo

La bandiera -k uccide qualsiasi processo utilizzando un file particolare. Tuttavia, se lo spazio dei nomi è una directory, fuser -k uccide tutti i processi che accedono a quella directory. Eseguendo questo comando nella Home directory senza specificare il file, interrompe il processo che esegue il sistema operativo e spegne il sistema .

Per evitare errori, esegui fuser in modalità interattiva con il -ki opzione. Termina i processi in modo interattivo nella Home directory con:

fuser -ki .

Il comando chiede conferma ogni volta prima di terminare un processo. Pertanto, premi y per terminare il processo e passare a quello successivo, oppure scegli N per passare al processo successivo.

Invia un segnale

Durante l'esecuzione di fuser con -k , il SIGKILL il segnale viene inviato a un processo. Tuttavia, per interrompere il normale fuser -k eseguire e terminare i processi con un segnale diverso, include il -[SIGNAL] bandiera.

fuser -k -[SIGNAL] [file_or_directory_or_socket]

Per elencare tutti i segnali noti a fuser , esegui:

fuser -l

L'output mostra 31 segnali che fuser poter usare. Quindi, durante l'esecuzione di fuser -k -[SIGNAL] , specificare il segnale per nome o numero (da -1 a -31). Ad esempio, per consentire a un processo di eseguire un arresto controllato, utilizza -TERM o -5 come -[SIGNAL] .

Ad esempio, per terminare il processo utilizzando la porta TCP 631 utilizzando il TERM segnale, esegui:

sudo fuser -ki -TERM -n tcp 631

Un'altra opzione è usare -5 come -[SIGNAL] e 631/TCP come nome della porta:

sudo fuser -ki -5 631/TCP

Il risultato è lo stesso in entrambi i casi. Cioè, usando TERM consente l'uscita graduale e il -ki flag chiede conferma, riducendo le possibilità di errore.

Per controllare le funzioni e i valori numerici di altri segnali Linux standard, eseguire:

man 7 signal

Conclusione

Dopo aver letto questo tutorial, sai come trovare un processo utilizzando un file, una directory o un socket o come terminare i processi con fuser .

Successivamente, scopri altri modi per terminare qualsiasi processo, nonché come elencare i processi in Linux.


Linux
  1. Comando wc Linux con esempi

  2. Comando Tee Linux con esempi

  3. Comando testa di Linux con esempi

  4. Comando JQ in Linux con esempi

  5. Esempi di comandi fusore in Linux

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Comando PS Linux con esempi

Comando IP Linux con esempi