lsof возвращает ошибку "not read vnode"
На Солярисе 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: WARNING: скомпилировано для выпуска Solaris 5.9; это 5.10.
Это звучит подозрительно, как lsof говорит, что он сломан, и вам нужно восстановить lsof двоичный файл из источника (или другими словами: обновление) для надежной работы с текущей версией Solaris.
Если это не вариант, этот ответ может помочь вам обойти проблему.