Like the grep command used to find strings from files and output, the pgrep command does the same for the processes.
In simple terms, the pgrep command will get you the PID of running processes.
So in this guide, I will walk you through various examples of how you can use the pgrep command.
Using the pgrep command on Linux
To use the pgrep command, you will have to follow the given command syntax:
pgrep [options] pattern
pattern is where you will specify the parameters for the output.
Now, let's have a look at some examples.
Find the PID of a specific process using the pgrep command
To find the PID of a specific process, all you have to do is follow the given syntax:
pgrep -u username process_name
So let's say I want to find the process ID of ssh for the user
sagar so I will be using the following command:
pgrep -u sagar ssh
Get the number of processes owned by the user
If you want to know the number of processes being utilized by the specific user, append the username with
-u flag to the pgrep command as shown:
pgrep -c -u username
For example, here, I looked for the number of processes owned by a user named
pgrep -c -u sagar
And if you want to combine the processes count of multiple users, you can separate them by column:
pgrep -c -u user-1,user-2
For example, here, I combined the processes of two users: sagar and root:
Search processes in a case-insensitive manner
By default, the pgrep utility operates in a case-sensitive mode so you may not be able to find the desired processes.
But you can switch to the case-insensitive mode using the
pgrep -i process_name
For example, here, I looked for firefox but used all capitals and it returned the right result:
pgrep -i FIREFOX
List ongoing processes with their names and PIDs
If you want to list every ongoing process with their names and PID, it can easily be done using the
pgrep -u username -l
For example, here I listed every ongoing process relative to the user named
pgrep -u sagar -l
Find which command was used to start the ongoing process
The pgrep utility also allows you to see the command used to start the ongoing process by using the
pgrep -u username -a
So let's say I'm looking for commands that executed ongoing processes for user root, then the following command should get my job done:
pgrep -u root -a
Find the most recently started process
If you want to find the most recent ongoing process, it can easily be found using the
But I would recommend pairing
-l to have more useful output as it will add use process name too:
pgrep -n -u sagar -l
Find the oldest ongoing process on Linux
In case, if you want to find the oldest ongoing process on your system, the pgrep utility can do that when executed with
For example, if I want to find the oldest ongoing process for my user (sagar), I will be using the following command:
pgrep -u sagar -o -l
But how about killing unnecessary processes?
Once you find out the set of unnecessary processes, you can use the various signals to kill them.
Don't know how to? Well, we have a detailed guide on how to kill processes from the terminal in Linux:
And if you are interested in learning more about signals to terminate the process, we have your back:
I hope you will find the given guide helpful and if you have any queries or suggestions, feel free to let me know in the comments.
Join the conversation