156

I want to see list of process created by specific user or group of user in Linux Can I do it using ps command or is there any other command to achieve this?

Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175

3 Answers3

207

To view only the processes owned by a specific user, use the following command:

top -U [username]

Replace the [username] with the required username

If you want to use ps then

ps -u [username]

OR

 ps -ef | grep <username>

OR

ps -efl | grep <username>

for the extended listing

Check out the man ps page for options

Another alternative is to use pstree wchich prints the process tree of the user

pstree <username or pid>
Stormvirux
  • 2,996
  • 3
  • 21
  • 25
  • 3
    All ` ... | grep ` solutions don't work if you have two usernames which are longer than N chars. In my case N is 6. – guettli Jan 19 '18 at 10:44
  • 1
    Note: I got an error for `top -U [username]`, and `top -u [username]` worked for me instead. Debian 9. So if anybody else gets an error with the -U form, try the lowercase. – Gloweye Oct 29 '18 at 09:08
  • 1
    Note: On FreeBSD it is `ps -U ` (notice the capital `U`) – Rahul Bharadwaj Apr 28 '21 at 17:13
7

try this one

ps -fp $(pgrep -u <username>)
user939407
  • 71
  • 1
  • 1
1

Note that -e (show all processes) overrides -u and makes it be ignored.

I was passing -e all the time without knowing what the option does, because I usually used ps -ef, and that made -u not work.

So if you want full listing you can keep the -f:

ps -fu USERNAME

Tested on Ubuntu 22.10,