The ps aux
command is one of the most commonly used commands in Linux for monitoring and managing system processes. It provides detailed information about all running processes, helping users diagnose performance issues, identify rogue processes, and analyze system activity.
Breaking Down ps aux
The command consists of three components:
ps
– The process status command, used to display information about active processes.a
– Shows processes from all users, not just the current user.u
– Displays detailed user-oriented output, including CPU and memory usage.x
– Includes processes that are not attached to a terminal (e.g., background daemons).
Example Output
Running ps aux
produces output similar to this:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 17128 4984 ? Ss 10:00 0:01 /sbin/init
john 1234 0.1 1.2 400000 25000 pts/0 S 10:05 0:02 /usr/bin/python3 script.py
Understanding the Output Columns
- USER – The user that owns the process.
- PID – The Process ID.
- %CPU – The percentage of CPU usage.
- %MEM – The percentage of memory (RAM) used.
- VSZ – Virtual memory size.
- RSS – Resident Set Size (physical memory used).
- TTY – The terminal associated with the process (or
?
for background daemons). - STAT – Process state (e.g.,
R
for running,S
for sleeping,Z
for zombie). - START – The start time of the process.
- TIME – The total CPU time used by the process.
- COMMAND – The command that started the process.
Filtering and Managing Processes
To make ps aux
more useful, you can combine it with grep
to filter specific processes:
ps aux | grep nginx
For sorting processes by CPU or memory usage:
ps aux --sort=-%cpu # Sort by CPU usage (descending)
ps aux --sort=-%mem # Sort by memory usage (descending)
To display only processes from a specific user:
ps aux | grep username
Alternative Commands
top
– Provides a dynamic, real-time view of system processes.htop
– An interactive alternative totop
with a user-friendly interface.pgrep
– Searches for processes by name without displaying a full list.
Conclusion
The ps aux
command is a powerful tool for system administrators and developers to monitor and manage Linux processes efficiently. By understanding its output and combining it with other commands, you can gain deep insights into your system’s performance and troubleshoot issues effectively.