Jak stwierdzić, czy proces linux jest 64-bitowy

23

Biorąc pod uwagę pid procesu, który działa na Linuksie x64, jak sprawdzić, czy działa on na 32-bitowym lub 64-bitowym pliku binarnym?

Mogę spojrzeć na plik binarny, w którym kończy się „ps”, i zrobić na nim plik, ale zastanawiałem się, czy jest jakiś sposób na sprawdzenie, patrząc na / proc / lub coś takiego.

naumcho
źródło

Odpowiedzi:

30

Możesz użyć filetej informacji:

Na przykład:

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

lub czytaj z / 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

Dzięki temu dowiesz się, czy jest to 64 czy 32-bit.

Matthieu Cartier
źródło
5

Począwszy od PIDmożesz:

file -L /proc/PID/exe
Cyrus
źródło