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