Discover which programs prevent disk image ejection

From SBAMUG WIKI
Jump to: navigation, search

One of my least-favorite error messages is the one that says a volume can't be ejected because it is in use. The vague advice to "try quitting applications" often leads me on a wild goose chase -- somehow it always seems to be the last application I try that has a document on the volume open.

I finally realized that the Unix lsof command is exactly what one needs in this situation. I have known about lsof for a long time, but somehow never put two and two together. Now when the Finder tells me I can't eject the volume 'DODO,' I just run this in the Terminal:

lsof | grep DODO

The output may then look something like this:

bash       228 johndoe  cwd      DIR      14,4      4096          2 /Volumes/DODO
Word      1379 johndoe   24u     REG      14,4        81     197704 /Volumes/DODO/C/Archiver/test.txt

This shows me that Word has test.txt open, and that there is a shell whose working directory is on DODO. This makes clear exactly what I need to do to be able to eject the volume -- close the Word document and cd out of the directory on DODO.