As a system administrator, you might need to check all the processes that are consuming your computer's resources.
To get the list of all the running processes, run the ps command with
aux argument flags in the following fashion:
This will give you a list of all running processes by all users on your system. You may use grep to filter the process using a pattern.
Let's see about using it in detail. I'll also share other commands to show running processes in Linux.
ps command is the standard command that most sysadmins use in a UNIX-like operating system.
There are several options that you can use with the
ps command, but the set of options to use when you want a list of all processes is
So, running the following command will show me all processes on my system:
Or, you can use the BSD-style syntax, which are still available in GNU
Lets break it down...
a: Display information about other users' processes as well as of the user's own (if the processes are connected to terminals i.e. daemons get excluded)
u: Display in a user readable format
x: Include processes that are not connected to a terminal i.e. include daemons
This will give you an incredibly long list of running processes that were running at the time of executing the
Most people, including me, pipe this output in
grep to find a needle in the haystack.
$ ps aux | grep alacritty pratham 4653 0.1 0.0 596776 63856 ? RNsl Mar09 3:43 alacritty pratham 4974 0.0 0.0 592792 58892 ? SNsl Mar09 0:18 alacritty pratham 6287 0.0 0.0 590204 56308 ? SNsl Mar09 0:14 alacritty pratham 8241 0.0 0.0 585504 51956 ? SNsl Mar09 0:07 alacritty pratham 514536 0.0 0.0 18808 2572 pts/1 SN+ 13:56 0:00 /usr/bin/grep --color=auto alacritty
Notice how the
grep command was also included in the output. This is because it also has 'alacritty' in the process name (as the argument).
Be wary of this behaviour [that grep will be included in the output] if you use it in a script.
ps -Ais that when you use
ps aux, you can easily grep the user, or alternatively, use the
-uoption. Whatever works for you.
Let's see some other Linux commands to see running processes.
The pgrep command accepts a pattern to match and if there are any processes that match with the provided pattern, a process ID (PID) is returned to stdout.
Below is the syntax to use for
Let's say, for example, I want to see the PIDs of any process that have the name 'alacritty'. I would use the following command for that:
$ pgrep alacritty 4653 4974 6287 8241
As I ran that command, I got four PIDs indicating that four processes match with the pattern 'alacritty' and their PIDs are outputted to the stdout.
You can also use the
-u flag (as opposed to
u) along with
ps command to specify a particular user and filter out the results, making it easier to manage.
There might be multiple users on my computer using Vim, user
root. If I want to filter processes and only want to see if
pratham has an active Vim process or not, here is how I find it out.
$ ps -u pratham | grep vim 516525 pts/2 SNl+ 0:00 nvim
pstree command, as its name implies, shows a hierarchical view of parent processes and child processes.
When run, the
pstree will show a top-down, tree-like structure output of processes as shown in the picture above.
You can also note that the PID 1 is systemd, indicating that my Linux system uses systemd.
Since there is not much information about PID, user, start time, CPU usage etc, it is not exactly a "go-to" command. But it still helps to know which child process belongs to which parent process.
Use a system monitor
Any UNIX-like system will have a tool that you can use to monitor the usage of physical resources like CPU, RAM, Network etc.
A few tools that people prefer and are widely used are
Here is the output of
top command running on my computer. It shows information like total tasks, CPU and Memory usage.
atop command differs from
top, obviously, but it also shows much more information about the processes like CPU, RAM usage, I/O etc.
htop utility is a widely used resource monitoring utility to get a real-time bar of per-core CPU usage, RAM and swap.
btop is one of the newest addition to the system resource usage monitoring utilities. The best thing about it is that we get a history of CPU usage.
This article covers how you can view the processes running on your computer. And there are several methods of viewing it. But, the most preferred method is to use the
If you want an interactive view of the running processes (sorted by CPU usage or RAM usage etc), you can use a system monitor like top or htop.