如何判断linux进程是否为64位

nau*_*cho 24 linux 64-bit

给定在 x64 linux 上运行的进程的 pid,我如何判断它是运行 32 位还是 64 位二进制文​​件?

我可以查看它用完 'ps' 的二进制文件并在其上创建一个文件,但我想知道是否有办法通过查看 /proc/ 或类似的东西来判断。

Mat*_*ier 31

您可以使用file来获取该信息:

例如:

chris@obsidian:~$ file /usr/bin/perl
/usr/bin/perl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Run Code Online (Sandbox Code Playgroud)

或从 /proc/ 读取

chris@obsidian:~$ file -L /proc/[PID]/exe
/proc/[PID]/exe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Run Code Online (Sandbox Code Playgroud)

这将告诉您它是 64 位还是 32 位。


cYr*_*rus 6

PID你可以:

file -L /proc/PID/exe
Run Code Online (Sandbox Code Playgroud)