Monitoring Processes in Linux with the `ps` Command

2 min read .

Managing processes in Linux is an essential skill for system administrators and developers. One of the most fundamental and powerful tools available for this task is the ps command. How to use ps to view and analyze processes running on your Linux system.

What is the ps Command?

The ps (process status) command is a command-line utility in Linux used to display information about processes currently running on the system. With ps, you can see what processes are running, who is running them, how much resources they are using, and other important information.

Using ps to View Processes

1. Displaying Processes Owned by the Current User

To view all processes owned by the user running the ps command, simply type:

ps

The standard output will show processes started from the current terminal, including columns for PID (Process ID), TTY (associated terminal), TIME (CPU time used), and CMD (command executed).

2. Viewing All Processes on the System

To see all processes running on the system, use the -e option:

ps -e

For a more detailed view, you can use:

ps -ef

The -f option provides more information, such as UID (User ID), PPID (Parent Process ID), and the start time of the process.

3. Filtering Processes by Name

To search for a specific process by name, use ps with grep:

ps -e | grep process_name

Example:

ps -e | grep nginx

This command will display all processes related to nginx.

4. Displaying Processes with Custom Format

The ps command allows you to customize the output display by selecting specific columns using the -o option:

ps -eo pid,ppid,cmd,%mem,%cpu

This command will show the PID, PPID, command executed, and the percentage of memory and CPU usage for each process.

5. Viewing Processes by CPU or Memory Usage

To see processes using the most CPU or memory, you can combine ps with sort:

  • Sort by CPU usage:

    ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head
  • Sort by memory usage:

    ps -eo pid,ppid,cmd,%mem --sort=-%mem | head

These commands will display the top 10 processes using the most CPU or memory.

6. Viewing Specific Process by PID

If you know a specific PID (Process ID) and want to get detailed information, use:

ps -p pid

Replace pid with the PID number you want to view.

Using ps with Other Options

  • Displaying Only Processes in the Current Terminal:

    ps -t tty

    Replace tty with the terminal name you want to view (e.g., tty1, pts/0).

  • Displaying Process Hierarchy:

    To view the process hierarchy (parent and child processes), use:

    ps -e --forest

    The --forest option displays processes in a tree format, making it easier to see the relationship between parent and child processes.

Conclusion

The ps command is a highly versatile tool for monitoring and analyzing processes running on a Linux system. With various options and filters available, you can tailor the ps output to meet your needs, whether for daily system management or in-depth analysis. Mastering ps will give you greater control over your system, allowing you to monitor performance, detect issues, and keep your system running smoothly.

Tags:
Linux

See Also

chevron-up