我正在寻找一种使用标准shell命令确定正在运行的进程的位数的简单而可靠的方法.
虽然我已经看到了Solaris和Linux的解决方案,但我希望找到一种适用于更加简单,可靠和可移植性的解决方案.
在Linux中这可以使用来完成/proc/$PID/exe
,/proc/$PID/maps
,/proc/$PID/auxv
例如但这些方法或者不存在在Solaris或不能容易地从调用sh
.
在Solaris中这样做的方式pflags $PID
却pflags
装不上大多数股票的Linux发行版.
在Solaris上,该实用程序/bin/pflags
将为您提供所需的信息:
$ /bin/pflags $$ | fgrep "data model" data model = _ILP32 flags = ORPHAN|MSACCT|MSFORK
_ILP32
是一个32位进程,_LP64
而是一个64位进程.
在Linux上,没有什么直接相似的.您可能想在那里查看完整的答案:https://unix.stackexchange.com/questions/106234/determine-if-a-specific-process-is-32-or-64bit