Ich verwende Putty, um meinen Linux-Server zu verbinden, auf dem sich meine Websites befinden. Ich kann ausführen
# ps aux | less
laufende Prozesse anzeigen. Aber ich möchte anzeigen, welche Dateien diese Prozesse ausführen?
Ich habe es auch versucht
# ps aux | grep <pid>
Aber diesen Fehler bekommen:
-bash: syntax error near unexpected token `newline'
Was ist der richtige Weg, um es zu tun?
linux
process
open-files
Tshepang
quelle
quelle
grep <pid>
sollst du durch<pid>
deine eigentliche Prozess-ID ersetzen (es ist eine Zahl).<pid>
ist nur ein Platzhalter, nicht etwas, das Sie tatsächlich eingeben sollten.Antworten:
ps aux | grep <pid>
ist kein Shell-Befehl. Die Notation<pid>
ist eine übliche Konvention, die bedeutet, dass die PID dort platziert wird. Wenn die PID beispielsweise 1234 lautet, werden Sie ausgeführtps aux | grep 1234
. Dies ist kein sehr nützlicher Befehl, den Sie genauso gut ausführen könnenps u 1234
.Ihre Frage ist nicht sehr klar. Was meinst du mit "mit Dateinamen"? Wenn Sie sehen möchten, welche ausführbare Datei der Prozess 1234 ausführt:
Wenn Sie sehen möchten, welche Dateien dieser Prozess geöffnet hat:
Wenn Sie die vollständige Befehlszeile mit Argumenten anzeigen möchten:
Wenn Sie lieber Befehle verwenden möchten,
lsof -p1234
werden alle Dateien angezeigt, die der Prozess geöffnet hat.ps uww 1234
zeigt verschiedene Informationen über den Prozess 1234 einschließlich der vollständigen Befehlszeile.quelle
Versuchen Sie Folgendes auszuführen:
quelle
Dies
ps aux | grep <PID>
ist zunächst nützlich, wenn Sie die Details für einen bestimmten Prozess anzeigen möchten, dessenPID
(Prozesskennung) durch dargestellt wird<PID>
.Zum Beispiel (
ps aux | grep 'firefox\|USER'
bedeutet, dass nur Zeilen gedruckt werden, die enthaltenfirefox
oderUSER
):Die PID für meine
firefox
Instanz lautet also 9021. Um den Befehl zu verwenden, den Sie ausführen möchten, würde ich Folgendes ersetzen<PID>
durch9021
:Ich bin mir nicht sicher, was Sie unter "Anzeigen, welche Dateien diese Prozesse ausführen" verstehen. Wenn Sie damit meinen, anzuzeigen, welche Dateien diese Prozesse verwenden,
ps aux
ist dies eine Möglichkeit. Angenommen, ich habe die Datei/usr/share/doc/nano/faq.html
mit diesem Befehl geöffnet :Ich konnte sehen, welche Datei
firefox
geöffnet wurde mitps
:Die geöffnete Datei wird als eines der an Firefox übergebenen Argumente angezeigt. Beachten Sie, dass die PID anders ist (es ist jetzt
31763
statt9021
), weil jedes laufende Programm seine eigene eindeutige PID hat.Ein weiterer nützlicher Befehl ist
top
. Wenn Sie es mit dem-c
Schalter ausführen, werden die an einen Befehl übergebenen Argumente und-u <your user>
damit nur Prozesse angezeigt, die von Ihrem Benutzernamen gestartet wurden (durch<your user>
Ihren tatsächlichen Benutzernamen ersetzen ):Dies ist die Ausgabe auf meinem lokalen Computer (Benutzer
terdon
führt nur zwei Prozesse aus):Eine Erklärung der von gezeigten Informationen
top
finden Sie in meiner Antwort auf eine verwandte Frage zu SU.quelle
Einige Zeichen unter der Shell sind für spezielle Zwecke wie <>? "; ... ...
grep PID ist nicht nützlich, da PID die Prozess-ID ist und grep ähnliche numerische ...
quelle