Ricerca nel sito web

Scopri come utilizzare il comando 'fuser' con esempi in Linux


Uno dei compiti più importanti nell'amministrazione dei sistemi Linux è la gestione dei processi. Si tratta di diverse operazioni sottoposte a monitoraggio, segnalazione dei processi e impostazione delle priorità dei processi sul sistema.

Esistono numerosi strumenti/utilità Linux progettati per monitorare/gestire processi come top, ps, pgrep, kill, killall, nice insieme a molti altri.

In questo articolo scopriremo come trovare processi utilizzando un'utility Linux piena di risorse chiamata fuser.

Lettura consigliata: trova i principali processi in esecuzione in base all'utilizzo di memoria e CPU più elevati

fuser è un'utilità da riga di comando semplice ma potente intesa a individuare i processi in base ai file, alle directory o al socket a cui accede un particolare processo. In breve, aiuta l'utente del sistema a identificare i processi utilizzando file o socket.

Come utilizzare il fusore nei sistemi Linux

La sintassi convenzionale per utilizzare fuser è:

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

Di seguito sono riportati alcuni esempi di utilizzo di fuser per individuare i processi sul tuo sistema.

Trova quale processo accede a una directory

Eseguendo il comando fuser senza alcuna opzione verranno visualizzati i PID dei processi che attualmente accedono alla tua directory di lavoro corrente.

fuser .
OR
fuser /home/tecmint

Per un output più dettagliato e chiaro, abilita -v o --verbose come segue. Nell'output, fuser stampa il nome della directory corrente, quindi le colonne del proprietario del processo (USER), ID del processo (PID) , il tipo di accesso (ACCESS) e il comando (COMMAND) come nell'immagine seguente.

fuser -v

Nella colonna ACCESSO vedrai i tipi di accesso indicati dalle seguenti lettere:

  1. c – directory corrente
  2. e – un file eseguibile in esecuzione
  3. f – file aperto, tuttavia, f viene tralasciato nell'output
  4. F – file aperto per la scrittura, anche F è esclusa dall'output
  5. r – directory principale
  6. m: file mappato o libreria condivisa

Trova quale processo accede a un file system

Successivamente, puoi determinare quali processi stanno accedendo al tuo file ~.bashrc in questo modo:

fuser -v -m .bashrc

L'opzione -m NAME o --mount NAME significa nominare tutti i processi che accedono al file NAME. Nel caso in cui si scriva una directory come NAME, viene spontaneamente modificata in NAME/, per utilizzare qualsiasi file system eventualmente montato su quella directory.

Lettura consigliata: trova i 15 principali processi in base all'utilizzo della memoria in Linux

Come uccidere e segnalare processi utilizzando fuser

In questa sezione lavoreremo sull'utilizzo di fuser per uccidere e inviare segnali ai processi.

Per terminare un processo che accede a un file o a un socket, utilizza l'opzione -k o --kill in questo modo:

sudo fuser -k .

Per terminare in modo interattivo un processo, dove ti viene chiesto di confermare la tua intenzione di terminare i processi che accedono a un file o socket, utilizza l'opzione -i o --interactive:

sudo fuser -ki .

I due comandi precedenti uccideranno tutti i processi che accedono alla directory corrente, il segnale predefinito inviato ai processi è SIGKILL, tranne quando viene utilizzato -SIGNAL .

Lettura consigliata: Una guida ai comandi Kill, Pkill e Killall in Linux

Puoi elencare tutti i segnali utilizzando le opzioni -l o --list-signals come di seguito:

sudo fuser --list-signals 

Pertanto, puoi inviare un segnale ai processi come nel comando successivo, dove SIGNAL è uno qualsiasi dei segnali elencati nell'output sopra.

sudo fuser -k -SIGNAL

Ad esempio, il comando seguente invia il segnale HUP a tutti i processi che hanno la directory /boot aperta.

sudo fuser -k -HUP /boot 

Prova a leggere la pagina man di fusore per opzioni di utilizzo avanzate e informazioni aggiuntive e più dettagliate.

Per ora è tutto, puoi contattarci tramite la sezione feedback qui sotto per qualsiasi assistenza di cui hai bisogno o suggerimenti che desideri dare.