Open In App

How to List Running Processes in Linux | ps Command

Last Updated : 13 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

As we all know Linux is a multitasking and multi-user system. So, it allows multiple processes to operate simultaneously without interfering with each other. Process is one of the important fundamental concepts of the Linux OS. A process is an executing instance of a program that carries out different tasks within the operating system. 

What is a Process in Linux?

In Linux, a process is a running instance of a program. When you execute a program, it becomes a process, an independent, executing entity with its own memory space. Each process is assigned a unique identifier, the Process ID (PID). Processes are fundamental to the functioning of the operating system and play a crucial role in multitasking, allowing the computer to execute multiple tasks concurrently.

List Running Processes in Linux

We can use multiple commands to list the running processes in Linux like ps, top, htop, and atop commands in Linux. We can also have a combination of commands to list the running processes in Linux.

1. The `ps` Command to List Running Processes in Linux

The `ps` command, which stands for “process status,” is like a computer tool that helps you see what’s happening inside your Linux computer. Imagine your computer is doing several things simultaneously, like running different programs or apps. These are the processes and the `ps` command lets you take a quick look at them. When you use it without any special instructions, it shows you the processes that are connected to the window or screen you are currently using. But here’s where it gets interesting: you can make the ps command show you exactly what you want to know by giving it special instructions, called options. These options let you customize the information you see, like finding out which programs are using the most computer power or checking what a specific user is doing. So, while it can give you a basic overview, the ps command’s real strength is in letting you choose exactly what details you want to see about the processes on your computer.

Syntax of `ps` Command in Linux

The ps command provides a snapshot of the current processes on your system. The basic syntax is as follows:

ps [options]

Without any options, `ps` displays information about the processes associated with the current terminal session. However, to harness the full potential of the `ps` command, various options can be used to customize the output.

Options for `ps` Command to List Running Processes in Linux

Some commonly used options

Options

Description

a

List all ruining processes for all users.

-A, -e

Lists all processes on the entire system, offering a complete overview of running tasks and programs.

-a

List all processes except session leaders (instances where the process ID is the same as the session ID) and processes not associated with a terminal.

-d

Lists all processes except session leaders, providing a filtered view of processes running on the system.

--deselect, -N

Lists all processes except those that meet specific user-defined conditions.

f

Displays the hierarchy of processes in a visual ASCII art format, illustrating parent-child relationships.

-j

Presents the output in the jobs format, providing detailed information such as process ID, session ID, and command.

T

Lists all processes associated with the current terminal, aiding in focusing on tasks related to a specific terminal.

r

Only lists running processes, useful for monitoring system performance.

u

Expands the output to include additional information like CPU and memory usage.

-u

Specifies a username, listing processes associated with that user.

x

Includes processes without a TTY, showing background processes not tied to a specific terminal session.

1) Simple process selection : Shows the processes for the current shell – 

 ps

list running processes in Linux

list running processes in Linux

Result contains four columns of information. Where, 

  • PID – the unique process ID 
  • TTY – terminal type that the user is logged into 
  • TIME – amount of CPU in minutes and seconds that the process has been running 
  • CMD – name of the command that launched the process. 

Note – Sometimes when we execute ps command, it shows TIME as 00:00:00. It is nothing but the total accumulated CPU utilization time for any process and 00:00:00 indicates no CPU time has been given by the kernel till now. In above example we found that, for bash no CPU time has been given. This is because bash is just a parent process for different processes which needs bash for their execution and bash itself is not utilizing any CPU time till now.  

2) View All Running Processes in Linux.

To view all running processes, use either of the following options with the `ps` command:

ps -A

ps -A option to view all running processes in linux

ps -A option to view all running processes in linux

ps -e

158

ps -e option to view all running processes in linux

3) List Processes Not associated with a Terminal in Linux

View all processes except both session leaders and processes not associated with a terminal. 

ps -a

ps -a option to list running processes in linux

ps -a option to list running processes in linux

Note –

You may be thinking that what is session leader? A unique session is assign to every process group. So, session leader is a process which kicks off other processes. The process ID of first process of any session is similar as the session ID.

4) List All The Processes Except Session Leaders in Linux

A session leader is a process that initiates other processes. View processes except session leaders:

ps -d

ps -d option to list running processes in linux

ps -d option to list running processes in linux

5) List All Processes Except those that Fulfill the Specified Conditions (negates the selection)

Example – If you want to see only session leader and processes not associated with a terminal. Then, run 
 

ps -a -N
OR
ps -a --deselect

6) List All Processes Associated with this Terminal in Linux

ps -T

ps -T option to list running processes in linux

ps -T option to list running processes in linux

7) View All Processes Owned By You

Processes i.e same EUID as ps which means runner of the ps command, root in this case – 

ps -x

ps -x option to list running processes in linux

ps -x option to list running processes in linux

8) Process selection by list

Here we will discuss how to get the specific processes list with the help of ps command. These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. 

For example:

ps -p "1 2" -p 3,4 

9) Select Processes by Command Name

This selects the processes whose executable name is given in cmdlist. There may be a chance you won’t know the process ID and with this command it is easier to search. 

Syntax :

ps -C command_name 

Example :

ps -C systemd

ps -C option to list running processes in linux

ps -C option to list running processes in linux

10) Select by group ID or name

The group ID identifies the group of the user who created the process. 

Syntax:

ps -G group_name 
ps --Group group_name 

Example :

ps -G root

View by group id : 

ps -g 1

164

View processes by process ID :

Syntax:

ps p process_id 
ps -p process_id 
ps --pid process_id 

Example:

ps p 27223

You can view multiple processes by specifying multiple process IDs separated by blank or comma – 

Example :  

ps -p 1 904 27223

Here, we mentioned three process IDs – 1, 904 and 27223 which are separated by blank. 

2. The `top` Command to List Running Processes in Linux

In Linux, the `top` command is a dynamic and interactive tool that provides real-time information about system processes. It offers a comprehensive view of running processes, system resource utilization, and other critical system metrics. This article explores how to effectively use the top command to monitor and manage processes.

Launching top

To launch the top command, open a terminal and simply type:

top

list all processes running in Linux in top

list all processes running in Linux in top

Process-related information including:

  • PID: Process ID
  • USER: Owner of the process
  • PR: Priority
  • NI: Nice value
  • VIRT: Virtual memory usage
  • RES: Resident set size (non-swapped physical memory used)
  • SHR: Shared memory
  • S: Process status (S: Sleeping, R: Running, I: Idle)
  • %CPU: Percentage of CPU usage
  • %MEM: Percentage of memory usage
  • TIME+: Total CPU time
  • COMMAND: Command or process name

3. The `htop` Command to List Running Processes in Linux

`htop` is an interactive process viewer for Linux that provides a visually appealing and feature-rich alternative to the traditional `top` command. It allows users to monitor and manage system processes in real-time with an easy-to-use interface. This guide demonstrates how to utilize `htop` to list running processes on a Linux system.

Installing htop

Before using htop, ensure it is installed on your system. Use the package manager relevant to your Linux distribution:

Debian/Ubuntu:

sudo apt-get install htop

Red Hat/CentOS:

sudo dnf install htop

Launching htop

To launch htop, open a terminal and type:

htop

list all processes running in Linux in top

list all processes running in Linux in htop

Process-related information including:

  • PID: Process ID
  • USER: Owner of the process
  • PRI: Priority
  • NI: Nice value
  • VIRT: Virtual memory usage
  • RES: Resident set size (non-swapped physical memory used)
  • SHR: Shared memory
  • S: Process status (S: Sleeping, R: Running, I: Idle)
  • CPU%: Percentage of CPU usage
  • MEM%: Percentage of memory usage
  • TIME+: Total CPU time
  • Command: Command or process name

4. The `atop` Command to List Running Processes in Linux

`atop` is a powerful and interactive system and process monitor for Linux that provides detailed information about system resources and processes. This guide illustrates how to use the `atop` command to list running processes and monitor system activity.

Installing htop

Before using atop, ensure it is installed on your system. Use the package manager relevant to your Linux distribution:

Debian/Ubuntu:

sudo apt-get install atop

Red Hat/CentOS:

sudo dnf install atop

Launching atop

To launch atop, open a terminal and type:

atop

list all processes running in Linux in atop

list all processes running in Linux in atop

Process-related information including:

  • PID : Process ID
  • SYSCPU : System CPU Time
  • USRCPU : User CPU Time
  • VGROW : Virtual Memory Growth
  • RGROW : Resident Memory Growth
  • RUID : Real User ID
  • EUID : Effective User ID
  • ST : Process State
  • EXC : Exit Code
  • THR : Number of Threads
  • S : Process Status
  • CPUNR : CPU Number
  • CPU : Overall CPU Usage
  • CMD : Command or Process Name

5. The `pgrep` Command to Find Process IDs in Linux

The `pgrep` command in Linux is a useful tool for finding and listing process IDs (PIDs) based on various criteria. It simplifies the process of identifying running processes, especially when searching for multiple instances or processes associated with specific attributes.

Basic Usage

To find the PID of a process using pgrep, you can use the following syntax:

pgrep [options] pattern

For instance, use the following command to search for the `systemd` process:

pgrep systemd

Finding process ID

Finding process ID

Example: Using the PID 291 provides information on the systemd process:

Finding process ID

Finding process ID

Conclusion

In this article we discussed how to list running processes in Linux . Processes are vital for multitasking and are identified by a unique Process ID (PID). Various commands like ps, top, htop, atop, and pgrep help list and manage these processes. For instance, ps provides a snapshot of processes, while top and htop offer real-time monitoring. atop gives detailed insights, and pgrep finds processes based on criteria. These commands empower users to understand, monitor, and control processes in a Linux system, ensuring efficient multitasking and resource management.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads