Gestione avanzata dei processi in Linux: fuser e lsof

Il controllo dei processi su una Linux box è uno dei compiti più importanti che può svolgere un sysadmin ma anche un utente comune. Ecco allora che la conoscenza degli strumenti fuser e lsof può rivelarsi fondamentale per tenere sotto controllo e diagnosticare con precisione cosa sta accadendo sulla propria distribuzione.

Di seguito voglio presentare una guida sintetica a dei possibili utilizzi di fuser e lsof:

fuser

Alcuni degli esempi riportati di seguito sono tratti da CommandLineFu.

fuser /home/pippo/

elenca tutti i PID dei processi che accedono alla cartella /home/pippo

fuser -v /home/pippo/

elenca tutti i nomi dei processi che accedono alla home directory di pippo

fuser -u /home/pippo/

elenca il nome dell’utente che ha processi attivi che accedono alla home di pippo

fuser -km /home/pippo/

uccide tutti i processi che accedono a /home/pippo/, può essere usato anche per blockdevice (/dev/sda1)

oppure

fuser -k nomefile

uccide i processi che bloccano un file

fuser -v 22/tcp

visualizza l’utente e il processo che gira su porta 22

oppure

fuser -n tcp 22

lsof

Alcuni esempi sono tratti dall’ottimo articolo di Daniel Miessler e da Troubleshooting UNIX Systems with Lsof

lsof -c sshd

l’opzione -c mostra quali file sono aperti dal processo indicato, nel mio caso sshd.

lsof /dev/cdrom

oppure

lsof /var/log/messages

mostra quali processi stanno interagendo su un block device o su un file, in questo caso /var/log/messages

lsof –u demonfly | more

mostra quali file sono aperti dall’utente demonfly e li manda in pipe a more per consentire di vedere tutto l’output nel caso sia molto lungo.

lsof -i

mostra tutte le connessioni aperte

lsof -i TCP

mostra tutte le connessioni su protocollo TCP

lsof -i UDP

mostra tutte le connessioni su protocollo UDP

lsof -u demonfly -a -i

mostra tutti i file processi che accedono a Internet dell’utente demonfly.

lsof -i TCP:80

mostra quale processo occupa la porta 80.

lsof -p 14554

mostra quali file sono aperti da un PID specifico.