Wie wird ein Prozess angezeigt, der von einem bestimmten Benutzer unter Unix / Linux erstellt wurde?

115

Ich möchte eine Liste der Prozesse sehen, die von einem bestimmten Benutzer oder einer bestimmten Benutzergruppe unter Linux erstellt wurden ps.

gaurav VINAYAK shirodkar
quelle
6
ps -u username. Die meisten Befehle haben eine Handbuchseite, mit der Sie lesen können man the-command.
Stéphane Chazelas

Antworten:

160

Verwenden Sie den folgenden Befehl, um nur die Prozesse anzuzeigen, die einem bestimmten Benutzer gehören:

top -U [username]

Ersetzen Sie den [Benutzernamen] durch den erforderlichen Benutzernamen

Wenn Sie dann ps verwenden möchten

ps -u [username]

ODER

 ps -ef | grep <username>

ODER

ps -efl | grep <username>

für die erweiterte Auflistung

Weitere Optionen finden Sie auf der Man-ps-Seite

Eine andere Alternative ist die Verwendung von pstree, das den Prozessbaum des Benutzers druckt

pstree <username or pid>
Stormvirux
quelle
2
Alle `... | grep <Benutzername> `Lösungen funktionieren nicht, wenn Sie zwei Benutzernamen haben, die länger als N Zeichen sind. In meinem Fall ist N 6.
guettli
1
Hinweis: Ich habe einen Fehler für erhalten top -U [username]und top -u [username]habe stattdessen für mich gearbeitet. Debian 9. Wenn also jemand anderes einen Fehler mit der -U-Form bekommt, versuchen Sie es mit Kleinbuchstaben.
Gloweye
2

Probier diese

ps -fp $(pgrep -u <username>)
user939407
quelle
Wie ist das besser als ps -u <username>, wie in der vorhandenen Antwort erwähnt (oder ps -fu <username>wenn Sie Prozessdetails wünschen)?
Stephen Kitt
ps -u gibt keine vollständigen Prozessdetails an, ps -fu <Benutzername> jedoch. Stimmen Sie zu, dass ps -fu die beste Lösung ist
user939407