Le risposte alle domande sul Mac

Come capire chi e che programma ha aperto o sta usando un certo file?

Argomenti: TerminaleInformazioni tecnicheUtility

Author: Marco Balestra

Se un file non è modificabile o cancellabile, “resource busy”, file in uso e quindi bloccato, può essere complesso capire quale applicazione o processo stia accedendo al file tenendolo aperto.

Per capire di quale processo mantiene busy un file, ci sono due comandi per il Terminale di OS X che vengono in aiuto: fuser e lsof

fuser

  1. Lanciare TextEdit
  2. Aprire un Terminal
  3. Digitare: fuser -fu /Applications/TextEdit.app/Contents/MacOS/TextEdit

Risulterà il proprio utente, ad esempio:

/Applications/TextEdit.app/Contents/MacOS/TextEdit: 1054(marco)

lsof

  1. Lanciare TextEdit
  2. Aprire un Terminal
  3. Digitare: lsof /Applications/TextEdit.app/Contents/MacOS/TextEdit

Il risultato sarà una cosa come:

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
TextEdit 1054 marco  txt    REG   14,2   267744 1072129 /Applications/TextEdit.app/Contents/MacOS/TextEdit

lsof ha moltissime opzioni, ad esempio con lo switch “-i” permette di verificare le porte TCP aperte (non solo i regular files).

Nota

Ovviamente al posto di “/Applications/TextEdit.app/Contents/MacOS/TextEdit” va messo il path al file che si intende verificare.

Con lsof è anche possibile non specificare alcun file e poi utilizzare “grep” in pipe, cosa particolarmente utile quando si esegue “lsof -i”.

Powered by JBLOUD, © 2021 altersoftware.IT