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.3k times
2
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
- 72,889
pgrep -u $USERNAME
isn't enough? What else do you need from/proc/$PID/status
? – muru Oct 15 '15 at 05:14