26

Given the pid of a process that's running on a x64 linux, how do I tell if it's running a 32 or 64 bit binary?

I can look at the binary it's running out of 'ps' and do a file on that but I was wondering if there's a way to tell by looking at /proc/ or something like that.

2 Answers 2

33

You can use file to get that information:

For example:

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

or read from /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

This will tell you if it is 64 or 32-bit.

1
  • Thank you to add a tip about /proc. I didn't know that was possible before I read this answer... and I needed it today. :)
    – kevinarpe
    Sep 22, 2020 at 13:47
8

Starting from the PID you can:

file -L /proc/PID/exe

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .