在Solaris和Linux上确定进程位数的最简单方法

时间:2017-01-10 01:57:29

标签: linux shell unix process solaris

我正在寻找一种使用标准shell命令确定正在运行的进程的位数的简单而可靠的方法。

虽然我已经看到了Solaris和Linux的解决方案,但我希望找到一种适用于更加简单,可靠和可移植性的解决方案。

在Linux中,这可以使用/proc/$PID/exe/proc/$PID/maps/proc/$PID/auxv来完成,但这些方法要么不在Solaris上,要么不能从sh轻松调用。

在Solaris中,执行此操作的方法是pflags $PID,但大多数Linux发行版上都没有安装pflags

2 个答案:

答案 0 :(得分:5)

在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-64-bit

答案 1 :(得分:1)

file /proc/<pid>/object/a.out将告诉您Solaris进程的位数