Wie kann ich anhand der PID eines Prozesses, der auf einem x64-Linux läuft, feststellen, ob eine 32- oder eine 64-Bit-Binärdatei ausgeführt wird?
Ich kann mir die Binärdatei ansehen, ihr geht „ps“ aus, und eine Datei dazu erstellen, aber ich frage mich, ob es eine Möglichkeit gibt, dies anhand von /proc/ oder etwas Ähnlichem festzustellen.
Antwort1
file
Um diese Informationen abzurufen, können Sie Folgendes verwenden :
Zum Beispiel:
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
oder lesen von /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
Hier erfahren Sie, ob es 64 oder 32 Bit ist.
Antwort2
Ab dem PID
können Sie:
file -L /proc/PID/exe