给定在 x64 Linux 上运行的进程的 pid,我如何判断它是运行 32 位还是 64 位二进制文件?
我可以查看它用尽“ps”的二进制文件并在其上创建一个文件,但我想知道是否可以通过查看 /proc/ 或类似的东西来判断。
答案1
您可以使用以下方法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
或者从 /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
这将告诉您它是 64 位还是 32 位。
答案2
从开始PID
你可以:
file -L /proc/PID/exe