Wie bestimme ich den Pfad zu einer Binärdatei eines Prozesses?
30
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.
Sie können coole Dinge tun /proc/$pid/exe, wenn die Binärdatei versehentlich gelöscht wird, können Sie sie wiederherstellen mit:dd if=/proc/$pid/exe of=restored-binary
Lekensteyn
1
Drücken Sie Ctrl+ Alt+ T, um zu einem Terminal zu gelangen und geben Sie Folgendes ein:
ls -al /proc/{pid}/fd
und dann die Ausgabe überprüfen
Dies listet alle Dateien auf, denen Ihr Prozess zugeordnet ist ...
Könnten Sie bitte meine Änderungen und auch die Bearbeitungshilfe überprüfen , um die Lesbarkeit Ihrer Antworten in Zukunft zu verbessern ... ;-)
Fabby
0
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
Und während es läuft, drücken Sie die Tastatur Cund Sie erhalten einen Befehl über die Prozesse, die ausgeführt wurden.
Antworten:
Der
/proc
Weg wäre, denexe
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 lautet :
Schlagen Sie den symbolischen Link nach:
quelle
Vielleicht
which
ist es das, wonach Sie suchen. Zum Beispiel auf meinem Systemkehrt zurück
Siehe auch Pfad der Anwendung suchen, die unter Solaris, Ubuntu, Suse oder Redhat Linux ausgeführt wird .
quelle
which
ist cool, gibt aber nur Programme in Ihrem $ PATH zurück. Wenn ich renneRandomProgramIDownloadedToErisKnowsWhere.bin
, nützt das nicht viel.Vorausgesetzt, Sie haben eine Prozess-ID zur Verfügung, können Sie Folgendes verwenden:
(Ersetzen
$pid
durch die Prozess-ID eines Prozesses)Wenn der Prozess Ihnen nicht gehört, müssen Sie ihn voranstellen
sudo
.Ein Beispiel zum Ermitteln der Position des Befehls
firefox
:Die Ausgabe von
ps ax -o pid,cmd | grep firefox
:28179
ist die Prozess-ID, Sie müssen also Folgendes ausführen:welche Ausgänge:
quelle
/proc/$pid/exe
, wenn die Binärdatei versehentlich gelöscht wird, können Sie sie wiederherstellen mit:dd if=/proc/$pid/exe of=restored-binary
Drücken Sie Ctrl+ Alt+ T, um zu einem Terminal zu gelangen und geben Sie Folgendes ein:
und dann die Ausgabe überprüfen
Dies listet alle Dateien auf, denen Ihr Prozess zugeordnet ist ...
quelle
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:
Und während es läuft, drücken Sie die Tastatur
C
und Sie erhalten einen Befehl über die Prozesse, die ausgeführt wurden.quelle