Get list of open files (descriptors) in OS X
I had a hard time getting Activity Monitor to show open files for a process that was running as root (via sudo). The original question mentions lsof
, and it does the trick exactly. If you know the process name or PID, it's super quick.
Find processes by name:
lsof -c processname
Find processes by PID:
lsof -p 123
(Prefix with sudo
as needed, such as if you are not the owner of the process.)
At least on OSX 10.10 (Yosemite, didn't check on Mavericks), you can get the list of open files by process via the default activity monitor application. Just double click on the relevant process on the list and select "Open Files and Ports" tab on the popup.
Tip: cmd+f shortcut on that pane allows for searching and highlighting on the content.
This works for some things:
sudo fs_usage | grep dev
for /dev/
files or similar.
The clean and simple approach to inspect the current process (i.e. the equivalent of /proc/self/fd
on Linux) is to use ls /dev/fd/
:
e.g.
$ touch "file"
$ exec 3<>file
$ ls /dev/fd/
0 1 2 3