lsof返回“无法读取vnode”错误

在Solaris 10中,我收到了lsof错误信息:

 can't read vnode at 0x7d900000000 can't read vnode at 0x7b 

但是在另外一个类似的Solaris 10中,我没有给出同样的错误。

在另一个框上, lsof成功列出了打开的文件信息。

有其他人遇到同样的问题,并已能够解决它?

从完整输出中摘录:

 $ lsof lsof: WARNING: compiled for Solaris release 5.9; this is 5.10. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME (unknown) 1 root cwd can't read vnode at 0x7d900000000 (unknown) 1 root rtd can't read vnode at 0x7b (unknown) 9 root cwd can't read vnode at 0x7d900000000 .... 

isainfo -kvfile输出:

 $ isainfo -kv 64-bit sparcv9 kernel modules $ file `which lsof` /usr/local/bin/lsof: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped 

在lsof工作的服务器上输出uname -a

 $ uname -a SunOS server009 5.10 Generic_150400-26 sun4u sparc SUNW,SPARC-Enterprise 

在lsof不起作用的服务器上输出uname -a

 $ uname -a SunOS server043 5.10 Generic_150400-12 sun4u sparc SUNW,Sun-Fire-V890 

lsof:警告:为Solaris发行版5.9编译; 这是5.10。

这听起来很像lsof告诉你它已经坏了,你需要从源代码(换句话说就是升级)重buildlsof二进制文件,以便可靠地使用当前的Solaris版本。

如果这不是一个选项, 这个答案可能会帮助你解决这个问题。