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

标签 linux shell unix process solaris

<分区>

我正在寻找一种简单可靠的方法来使用标准 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-64-bit

关于linux - 在 Solaris 和 Linux 上确定进程位数的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41559979/

相关文章:

linux - 我在哪里可以找到 ldconfig 的源代码?

c - aio_write 是否总是写入整个缓冲区?

linux - 需要使用 unix 脚本移动具有文件路径的目录中的文件名

macos - 如何在 FreeBSD(和 macOS)中守护 shell 脚本

c++ - 编译后 Unix 命令行无法运行程序,没有错误消息

windows - 如何在 Komodo 7.1 中启用 mysql 支持?

linux - 如何使用 sed 在现有文件的开头添加 UTF-16 字符?

linux -/etc/passwd 上是否存在所有 linux 用户?

java - 在 RedHat 6 中将应用程序作为服务启动未使用预期的 Java 系统属性

bash - 别名命令更改到最新目录