Как узнать, запущен ли процесс на x64-платформе Linux, используя pid, какой двоичный файл он запускает — 32- или 64-разрядный?
Я могу посмотреть на двоичный файл, в котором заканчивается «ps», и создать файл для этого, но мне было интересно, есть ли способ узнать это, посмотрев на /proc/ или что-то в этом роде.
решение1
file
Для получения этой информации вы можете использовать :
Например:
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
или прочитать из /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
Это скажет вам, является ли система 64- или 32-битной.
решение2
Начиная с этого PID
вы можете:
file -L /proc/PID/exe