在 Solaris 上,当我键入命令时
lsof -l
我遇到了这个错误:
lsof: can't read namelist from /dev/ksyms
任何人都知道这个错误意味着什么以及如何在 Solaris 中使用 lsof 打开打开的 FD 列表?
答案1
使用 Solaris 标准命令的最接近的等效项是
pfiles /proc/*
答案2
来自lsof常见问题解答:
17.12.7 为什么 Solaris 7、8 或 9 系统上的 lsof 显示“无法从 /dev/ksyms 读取名单?”
您可能正在尝试使用为 64 位 Solaris 7、8 或 9 内核上的早期 Solaris 版本构建的 lsof 可执行文件。的输出
lsof -v
将告诉您 lsof 可执行文件的构建环境。您还应该收到一条警告消息,指出 lsof 是为与运行它的版本不同的 Solaris 版本编译的 - 如下所示:lsof: WARNING: compiled for Solaris release X; this is Y
您需要在要使用 lsof 的系统上构建它。对于 64 位 Solaris 7、8 和 9,您需要一个可以生成 64 位 Solaris 可执行文件的编译器 - 例如,Sun Workshop 5 C 编译器或更高版本,或者最新的 gcc 版本(如 3.2)。