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:
c
– directory correntee
– un file eseguibile in esecuzionef
– file aperto, tuttavia, f viene tralasciato nell'outputF
– file aperto per la scrittura, anche F è esclusa dall'outputr
– directory principalem
: 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.