Wie kann ich sehen, welche Prozesse ausgeführt werden?
21
Ich verwende Ubuntu Server 10.10 und möchte sehen, welche Prozesse ausgeführt werden. Ich weiß, dass PostgreSQL auf meinem Computer ausgeführt wird, kann es jedoch nicht mit den Befehlen topoder psanzeigen. Daher gehe ich davon aus, dass nicht alle ausgeführten Prozesse angezeigt werden. Gibt es einen anderen Befehl, der alle laufenden Prozesse anzeigt, oder gibt es andere Parameter, die ich mit topoder psfür diesen verwenden kann?
Somit ps -ewerden alle Prozesse angezeigt. Die gebräuchlichen Optionen für "Gib mir alles" sind ps -elyoder ps aux, letzteres ist der BSD-Stil. Oft grepleiten die Leute diese Ausgabe dann weiter , um nach einem Prozess zu suchen, wie in der Antwort von Xenoterracide. Um zu vermeiden, dass Sie sich grepselbst in der Ausgabe sehen, sehen Sie häufig Folgendes:
ps -ef | grep [f]oo
wo foo ist der Prozessname, den Sie suchen.
Wenn Sie jedoch nach einem bestimmten Prozess suchen, empfehle ich, den pgrepBefehl zu verwenden, falls er verfügbar ist. Ich glaube, es ist auf Ubuntu Server verfügbar. Verwenden pgrepbedeutet, dass Sie die oben genannten Rennbedingungen vermeiden. Es bietet auch einige andere Funktionen, deren grepReplikation immer komplizierter werden würde . Die Syntax ist einfach:
pgrep foo
wo foo ist der prozess, nach dem du suchst. Standardmäßig wird lediglich die Prozess-ID (PID) des Prozesses ausgegeben, sofern er eine findet. Siehe man pgrepfür weitere Ausgabeoptionen. Ich fand die folgende Seite sehr hilfreich:
Ich frage mich, wie viel Prozent der Menschen verwenden, psohne die Flaggen zu kennen. Ich werfe einfach auximmer drauf; Ich habe keine Ahnung, was die einzelnen Flags tatsächlich steuern
Michael Mrozek
3
haben Sie versucht ps aux | grep postgres? es sollte sich wirklich zeigen, wenn postgres läuft. Wenn nicht ... woher weißt du, dass Postgres läuft?
(Hinweis: Es ist ein weit verbreitetes Missverständnis, dass es ist, ps -auxaber das ist nicht richtig)
Dank, ps auxbesser funktioniert, zeigte es rund 70 Prozesse, während psnur zwei zeigten. Ich weiß, dass PostgreSQL ausgeführt wurde, da ich sah, dass es beim Booten gestartet und beim Herunterfahren gestoppt wurde.
Jonas
@ Jonas einige Init-Skripte sind schlecht geschrieben. Glauben Sie ihnen nicht, nur weil sie sagen, dass etwas gestartet und gestoppt wurde. Nur ein Tipp
Xenoterracide
Es gibt auch pgrepdafür, was den Vorteil hat, dass Ihr ps aux | grep postgresBefehl niemals selbst in der Prozessliste abgefangen und ausgegeben wird
ps
ohne die Flaggen zu kennen. Ich werfe einfachaux
immer drauf; Ich habe keine Ahnung, was die einzelnen Flags tatsächlich steuernhaben Sie versucht
ps aux | grep postgres
? es sollte sich wirklich zeigen, wenn postgres läuft. Wenn nicht ... woher weißt du, dass Postgres läuft?(Hinweis: Es ist ein weit verbreitetes Missverständnis, dass es ist,
ps -aux
aber das ist nicht richtig)quelle
ps aux
besser funktioniert, zeigte es rund 70 Prozesse, währendps
nur zwei zeigten. Ich weiß, dass PostgreSQL ausgeführt wurde, da ich sah, dass es beim Booten gestartet und beim Herunterfahren gestoppt wurde.pgrep
dafür, was den Vorteil hat, dass Ihrps aux | grep postgres
Befehl niemals selbst in der Prozessliste abgefangen und ausgegeben wird