Linux プロセスが 64 ビットかどうかを確認する方法

Linux プロセスが 64 ビットかどうかを確認する方法

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

関連情報