How to tell if linux process is 64bit

22

5

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.

naumcho

Posted 2010-12-21T16:01:44.090

Reputation: 451

Answers

29

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.

Matthieu Cartier

Posted 2010-12-21T16:01:44.090

Reputation: 3 422

5

Starting from the PID you can:

file -L /proc/PID/exe

cYrus

Posted 2010-12-21T16:01:44.090

Reputation: 18 102