Dado el pid de un proceso que se ejecuta en Linux x64, ¿cómo puedo saber si está ejecutando un binario de 32 o 64 bits?
Puedo mirar el binario, se está quedando sin 'ps' y crear un archivo sobre eso, pero me preguntaba si hay una manera de saberlo mirando /proc/ o algo así.
Respuesta1
Puede utilizar file
para obtener esa información:
Por ejemplo:
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
o leer desde /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
Esto te dirá si es de 64 o 32 bits.
Respuesta2
A partir del PID
puedes:
file -L /proc/PID/exe