it-swarm.com.de

Wie bestimme ich den Pfad zu einer Binärdatei eines Prozesses?

Gibt es eine Möglichkeit, das Verzeichnis/den Speicherort herauszufinden, von dem aus ein Prozess gestartet wurde? Ich bin mir des/proc-Mount bewusst, aber nicht wirklich, wo ich hineinschauen soll.

30
SuperJumbo

Der /proc Weg wäre, den exe Link in dem Verzeichnis zu überprüfen, das der pid entspricht.

Nehmen wir ein Beispiel mit update-notifier:

Suchen Sie die pid, die in diesem Beispiel 15421 ist:

[email protected]:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Schlagen Sie den symbolischen Link nach:

[email protected]:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'
37
Egil

Vielleicht ist which was Sie suchen. Zum Beispiel auf meinem System

which firefox 

kehrt zurück

/usr/bin/firefox

Siehe auch Pfad der Anwendung suchen, die unter Solaris, Ubuntu, Suse oder Redhat Linux ausgeführt wird .

14
N.N.

Vorausgesetzt, Sie haben eine Prozess-ID zur Verfügung, können Sie Folgendes verwenden:

readlink -f /proc/$pid/exe

(Ersetzen Sie $pid durch die Prozess-ID eines Prozesses.)

Wenn der Prozess Ihnen nicht gehört, müssen Sie Sudo davor setzen.

Ein Beispiel zum Ermitteln der Position des Befehls firefox:

  1. Die Ausgabe von ps ax -o pid,cmd | grep firefox:

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 ist die Prozess-ID, daher müssen Sie Folgendes ausführen:

    readlink -f /proc/28179/exe
    

    welche Ausgänge:

    /usr/bin/firefox
    
6
Lekensteyn

Drücken Sie Ctrl+Alt+T zu einem Terminal gehen und Folgendes eingeben:

ls -al /proc/{pid}/fd  

und dann die Ausgabe überprüfen

Dies listet alle Dateien auf, denen Ihr Prozess zugeordnet ist ...

1
xiaoyifang

Alle Befehle in den anderen Antworten sind gut, aber Sie können noch mehr tun - sehen, wie ein Prozess tatsächlich ausgeführt wurde, bevor er in die Prozessliste aufgenommen wurde.

Im Terminal ausführen:

top

Drücken Sie während der Ausführung die Taste C und Sie erhalten einen Befehl über die ausgeführten Prozesse.

0
Aleks