在 Solaris 10 机器上,我收到以下错误lsof
:
can't read vnode at 0x7d900000000
can't read vnode at 0x7b
但是我lsof
在另一个类似的 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 -kv
和的输出file
:
$ 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
uname -a
lsof 工作的服务器上的输出:
$ uname -a
SunOS server009 5.10 Generic_150400-26 sun4u sparc SUNW,SPARC-Enterprise
uname -a
lsof 不起作用的服务器上的输出:
$ uname -a
SunOS server043 5.10 Generic_150400-12 sun4u sparc SUNW,Sun-Fire-V890
答案1
lsof:警告:针对 Solaris 版本 5.9 编译;这是 5.10。
这听起来很像是lsof
在告诉您它已损坏并且您需要lsof
从源代码重建二进制文件(或换句话说:升级)才能可靠地与您当前的 Solaris 版本一起使用。
如果这不可行,这个答案可能会帮助你解决这个问题。