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