use*_*543 51 macos file-descriptor procfs osx-mavericks
我想在os x(10.9.1)的进程中获取一个打开文件的列表.在Linux中我能够从中获得/proc/PID/fd.但是我不确定如何在OS X上获得相同的结果.我发现OS X上没有procfs(默认情况下.可能的实现存在,但我不想那样).
那么我如何(在本机上)获取OS X上进程中打开文件的列表.一种方法是lsof.有没有其他支持?请告诉我在哪里可以获得更多相关信息.
谢谢.
smi*_*lli 49
我很难获得Activity Monitor来显示以root身份运行的进程的打开文件(通过sudo).最初的问题提到了lsof,它完全可以解决问题.如果你知道进程名称或PID,那就超级快了.
按名称查找流程:
lsof -c processname
Run Code Online (Sandbox Code Playgroud)
通过PID查找流程:
lsof -p 123
Run Code Online (Sandbox Code Playgroud)
(sudo根据需要添加前缀,例如,如果您不是该进程的所有者.)
Fuu*_*Fuu 39
至少在OSX 10.10(Yosemite,没有检查Mavericks)上,您可以通过默认活动监视器应用程序获取打开文件列表.只需双击列表中的相关进程,然后在弹出窗口中选择"打开文件和端口"选项卡.
提示:该窗格上的cmd + f快捷方式允许在内容上进行搜索和突出显示.
检查当前进程的干净简单的方法(即相当于/proc/self/fdLinux 上的)是使用ls /dev/fd/:
例如
$ touch "file"
$ exec 3<>file
$ ls /dev/fd/
0 1 2 3
Run Code Online (Sandbox Code Playgroud)
列出 /Volumes/VolumeName 上的打开文件:
lsof | grep "/Volumes/VolumeName"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47958 次 |
| 最近记录: |