Fuser: conoscere il processo che utilizza un file

Non tutti conoscono il comando fuser, utilizzabile da shell per sapere quale processo sta uzilizzando un file.

Il comando fuser elenca i processi che utilizzano uno o più indicati come argomento.
Inoltre, fuser permette anche di inviare un segnale ai processi che utilizzano un determinato file (o determinati gruppi di file) mediante l'opzione -k.

fuser si trova normalmente nella directory /bin/ o /usr/bin/ o /usr/sbin a seconda della distribuzione utilizzata (per saperlo esattamente basta usare da shell il comando which fuser), il pacchetto (o l'ebuild) per installarlo nel caso mancasse nel vostro sistema è psmisc.

Usando il comando fuser si utilizza fuser per ottenere l'elenco dei processi che accedono ad un file, vengono restituiti i numeri dei processi in abbinamento ad una lettera che indica in che modo accedono al file:

  • c directory corrente
  • e eseguibile in esecuzione
  • f file aperto (è possibile che non venga visualizzata)
  • r directory radice
  • m file mappato in memoria o libreria condivisa

fuser ritorna come valore zero se tra i file indicati ne esiste almeno uno che non è utilizzato da alcun processo.

Sintassi:

fuser [<opzioni>] <file1> [<file2>]…[<filen>]

Opzioni di fuser:

  • -a
    Mostra tutti i file indicati come argomento, anche se non sono utilizzati da alcun processo. Normalmente, fuser mostra solo i file in uso
  • -k
    Invia un segnale ai processi. Se non viene specificato diversamente attraverso l'opzione -, si utilizza il segnale di default SIGKILL

  • Permette di specificare il segnale da inviare con l'opzione -k. In pratica, si tratta di un trattino seguito dal segnale espresso in forma numerica o in forma simbolica (per esempio -TERM)
  • -l
    Elenca i nomi dei segnali conosciuti
  • -m
    Utilizzando questa opzione può essere indicato solo un nome di file, il quale può essere un file di dispositivo, riferito a un'unità di memorizzazione montata nel filesystem, o una directory che costituisce il punto di innesto della stessa. Quello che si ottiene è l'indicazione di tutti i processi che accedono a quella unità di memorizzazione
  • -u
    Viene aggiunta l'indicazione dell'utente proprietario di ogni processo
  • -v
    Mostra una tabellina dei processi abbinati ai file, in forma più chiara rispetto alla visualizzazione normale.
  • -s
    Disabilita qualunque emissione di informazioni. Viene utilizzato quando tutto ciò che conta è il solo valore restituito dal programma.

Esempi:

fuser *

Mostra i processi che accedono ai file della directory corrente.

fuser -k /usr/sbin/*

Elimina tutti i processi che utilizzano file nella directory /usr/sbin/.

This entry was posted in General. Bookmark the permalink.