The ps command, also called “processes status,” is a tool to view information about running processes on a Linux-based operating system. It is used to monitor all running processes along with USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, and many more. The ps command is very useful, allowing system administrators to find the PID of any process to troubleshoot issues. It is one of the most powerful and essential process management tools that every Linux user should know and learn.

1. List All Processes of the Current User

You can use the ps command without any parameters to display a list of all running processes started by the user who ran the command.

ps

You should see the following output:

PID TTY TIME CMD
3871 pts/5 00:00:00 bash
5633 pts/5 00:00:00 ps

As you can see, there are four columns. A brief explanation of each column is shown below:

PID : Specifies the process ID of the process.

TTY : Specifies the name of the console the user logged in.

TIME : Specifies the amount of CPU processing time.

CMS : Specifies the command used to launch the process.

2. List Processes for All Users

You can list all processes started by all users using the following command:

ps -ef | less

or

ps ax | less

You should see all the processes in the following screen:

3. List Processes by User

You can also filter the processes using the option -u followed by the username.

For example, to list all processes owned by www-data user, use the following command:

ps -f -u www-data

You should see the following screen:

You can also specify multiple usernames using a comma.

For example, to list all processes owned by the www-data and root users, use the following command:

ps -f -u www-data,root

4. List Processes by Name or PID

To list the processes, by name use the -C option with search term.

For example, to list the processes of MySQL, run the following command:

ps -C mysqld

Or

ps -ef | grep mysql

You should see the following screen:

You can also list the processes by process id using the -p option.

ps -f -p 11560

You should see the Apache process in the following output:

UID PID PPID C STIME TTY TIME CMD
www-data 11560 11559 0 Jun12 ? 00:00:00 /usr/sbin/apache2 -k start

5. Sort Processes by CPU and Memory Usage

Sometimes you will need to find out processes that are consuming lots of CPU and Memory. In this case, you can sort the process list based on a specific field or parameter.

Run the following command to list the top 10 processes consuming most of the CPU and Memory:

ps aux --sort=-pcpu,+pmem | head -10

You should see the following screen:

6. Display Processes in Realtime

You can also display the top CPU and Memory consuming processes using the watch command with ps:

watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'

You should see the following screen:

7. List the Process Tree

Some processes are forked out of parent processes. This can help you to figure out an issue or identify a particular process. You can use -e option with –forest to show how processes are linked in a Linux.

ps -e --forest

You should see the following screen:

8. Display Elapsed Time of Running Processes

You can find out how long the process has been running for using the -o option:

ps -e -o pid,comm,etime | less

You should see the following screen:

Conclusion

In the above guide, you learned how to use the ps command to monitor Linux processes. Try using the ps command today on dedicated server hosting from Atlantic.Net!