Ich habe es eingegeben ps -p 3454 -o command
und als Ausgabe erhielt ich:
COMMAND
/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
Was -D -a
bedeutet hier?
Wenn ich verwende ps -p 3454 -o comm
, erhalte ich nicht die Ausgabe /run/user...., sondern nur den Befehl ssh-agent
.
Was bedeutet /run/user.... hier? Ist comm=
und comm
dasselbe?
Antwort1
Entsprechendps(1) — Linux-Handbuchseiteps
und nach meinen Tests sind hier einige Details, die diese Ausgabe verdeutlichen. Dies wird Ihnen helfen, besser zu verstehen, was mit dem von Ihnen ausgeführten Befehl passiert .
Ihr gesamter Befehl ist diesps -p 3454 -o command
- Der
ps -p 3454
Teil davon erhält die Details des aktiven laufenden Prozesses für PID3454
- Der
-o command
Teil davon gibt den eigentlichen Befehl und die Argumente des laufenden Prozesses aus, der an die PID gebunden ist
Als Sie dies ausführten, um PID-Details anzuzeigen 3453
, war das zufällig derSSH-AgentProzess. Die Verwendung der -o command
gibt den Rohbefehl und die Argumente aus, für ssh-agent
die Parameter verwendet wurden, -D -a
als der ps
Befehl den Snapshot erstellte.
Wenn Sie nur verwenden, -o comm
wird tatsächlich nur der Name der ausgeführten PID-Datei ausgegeben. Dies bedeutet eigentlich nur, -o comm
dass -o command
verschiedene Details des Prozesses angezeigt werden, den Sie abfragen.
Unterstützende Ressourcen
-
comm
:- Befehlsnamen anzeigen (nur den ausführbaren Namen). Änderungen am Befehlsnamen werden nicht angezeigt. Die Ausgabe in dieser Spalte kann Leerzeichen enthalten.
command
:- Zeigt den Befehl mit allen Argumenten als Zeichenfolge an. Änderungen an den Argumenten können angezeigt werden. Die Ausgabe in dieser Spalte kann Leerzeichen enthalten.
Antwort2
das "-D -a" hat nichts mit PS zu tun. PS listet die Prozesse auf - und ein laufender Prozess ist "/usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh" - d. h. das -D -a sind Parameter, die an ssh-agent übergeben werden.
In Bezug auf den SSH-Agent: -D bedeutet im Vordergrund ausführen und -a bedeutet „an alle Adressen binden“.
Auf meinem Ubuntu-System sehe ich zwei „ssh-agent“-Prozesse – einen im Hintergrund, vermutlich im Zusammenhang mit Befehlszeilenaufgaben, die ich gerade mache, während ein zweiter ein Client der Desktop-Sitzung ist, also wahrscheinlich im Vordergrund, sodass er mit dieser interagieren kann. (Wenn ich den mit dem Prozess verknüpften Prozess mit den Optionen -D -a beende und eine SSH-Sitzung vom Desktop aus starte, werde ich tatsächlich aufgefordert, mich erneut zu authentifizieren, und dieser Prozess wird neu gestartet.)