Dado o pid de um processo que está sendo executado em um Linux x64, como posso saber se ele está executando um binário de 32 ou 64 bits?
Posso olhar para o binário que está ficando sem 'ps' e fazer um arquivo sobre isso, mas queria saber se há uma maneira de saber olhando para /proc/ ou algo parecido.
Responder1
Você pode usar file
para obter essas informações:
Por exemplo:
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
ou leia em /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
Isso lhe dirá se é de 64 ou 32 bits.
Responder2
Começando pelo PID
você pode:
file -L /proc/PID/exe