So here's what I want to do: User inputs a USERNAME. Based on this username, I need to get the list of processes started by this user. I am planning to do this by getting the UID of this user and listing all the processes with this UID. I only found UID in the /proc/$PID/status file. I am unclear about how do I proceed with this.
Asked
Active
Viewed 1.1k times
2
-
A `pgrep -u $USERNAME` isn't enough? What else do you need from `/proc/$PID/status`? – muru Oct 15 '15 at 05:14
-
I want to get the UID of the user. Once UID is available, I need to fetch all the PIDs that are under this UID (Basically, get all the processes started by this user). pgrep lists all the PIDs of a particular user, but I need the UID too. – Dee Oct 15 '15 at 05:19
-
check this http://unix.stackexchange.com/questions/85466/how-to-see-process-created-by-specific-user-in-unix-linux link. It will be helpful. – AVJ Oct 15 '15 at 05:42
1 Answers
4
To get the UID from the username, use id -u:
$ id -u root
0
$ id -u lightdm
112
$ id -u nobody
65534
But you are re-inventing the wheel. pgrep already handles this just fine:
$ pgrep -u www-data
1909
1910
1911
1912
$ id -u www-data
33
$ pgrep -u 33
1909
1910
1911
1912
You can also use plain ps:
$ ps -U www-data -o uid,pid
UID PID
33 1909
33 1910
33 1911
33 1912
muru
- 69,900
- 13
- 192
- 292