sabato 2 febbraio 2008

cosa non puoi fare col pinguino?



Quante volte vi è capitato di cercare di disattivare una penna USB (o pendrive, o come cavolo volete chiamarlo) e non ci siete riusciti (roba tipo: "Impossibile disattivare volume generico") perchè qualche file era "in uso"?? A me milioni di volte (quando ancora frequentavo WinXP con una certa frequenza.
Ovviamente, il problema spesso non è di Windows stesso, ma piuttosto dei software che usiamo. Il problema di Windows a quel punto diviene: come faccio a capire di chi è la colpa se mi sembra di aver chiuso tutti i programmi che credevo incriminati??


In linux (che, come potete vedere, non è normalmente più esplicito di Windows) c'è un metodo (forse anche in Win, ma io non lo conoscevo): il comando lsof.
L'utilizzo è molto semplice: conoscete nome e percorso del file? Basta fare così:
maurizio@maurizio-laptop:~$ lsof /media/cdrom0/pdf/maggio.pdf
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
kpdf 20659 maurizio 12r REG 11,0 13424587 2852 /media/cdrom0/pdf/maggio.pdf


Conoscete solo il nome del file? Beh, potete sempre ricorrere a grep, così:
maurizio@maurizio-laptop:~$ lsof | grep maggio
kpdf 20659 maurizio 12r REG 11,0 13424587 2852 /media/cdrom0/pdf/maggio.pdf

Ovviamente, nel mio caso il file si chiama maggio.pdf e si trova nel lettore dvd.
Saputo chi è il colpevole, si è liberi di chiudere (o uccidere, come piace a voi) il processo incriminato.

Fonte: Linux Magazine (una raccolta dei pdf dei numeri del 2007)