Monitoring active processes, resource consumption, and system background daemons in Linux has historically depended on the standard ps utility. While ubiquitous, standard ps aux outputs unwieldy, unformatted text columns that overflow standard terminal widths, truncate long paths, and lack color syntax highlighting. Modern command-line administrators frequently turn to procs, an open-source, Rust-built alternative to ps that provides automatic terminal width scaling, rich visual styling, process tree views, and integrated Docker container recognition.
Key Advantages of procs Over Standard ps
Developed by dalance, procs modernizes command-line process auditing with powerful out-of-the-box features:
- Adaptive Column Formatting: Automatically detects your terminal window width and intelligently suppresses or wraps secondary columns without breaking table alignment.
- Colour-Coded Resource Metrics: Visually differentiates process owners, highlighting elevated CPU and memory usage with distinct color thresholds.
- Native Process Tree Hierarchy: Renders visual parent-child process relationships with clean tree branch lines using the
--treeargument. - Interactive Search & Watch: Supports built-in keyword filtering and real-time live monitoring without piping through
greporwatch. - Docker and Cgroup Awareness: Automatically inspects and displays associated Docker container IDs alongside native process PIDs.
Installing procs on Linux Distributions
The procs binary is packaged across standard Linux distribution repositories and Cargo channels:
Ubuntu & Debian (Pre-Compiled Binary)
Download and install the pre-compiled binary release directly from GitHub:
wget https://github.com/dalance/procs/releases/latest/download/procs-v0.14.8-x86_64-linux.zip
unzip procs-v0.14.8-x86_64-linux.zip
sudo mv procs /usr/local/bin/
sudo chmod +x /usr/local/bin/procs
Alternatively, install via Snap:
sudo snap install procs
Arch Linux and Manjaro
sudo pacman -S procs
Fedora, RHEL, and Rocky Linux
sudo dnf install procs
Cargo (Cross-Distribution)
cargo install procs
Basic Usage: Inspecting Processes with procs
To inspect your running processes with clean tabular formatting, simply execute:
procs
Unlike ps aux, which floods your terminal with hundreds of lines, procs provides a neatly formatted table containing:
- PID: The unique process identifier.
- User: The Linux system account executing the task.
- TTY: Terminal session attachment.
- CPU / Memory: Percentage and exact megabytes consumed, color-coded for quick identification of heavy workloads.
- Read / Write: Real-time storage I/O bandwidth consumption per process.
- Command: The full command path and runtime arguments.
Filtering by Process Name or Keyword
Instead of piping into grep (which often outputs the grep process itself), pass any search string directly to procs:
procs nginx
Or search for specific runtime environments:
procs python
procs matches strings against process names, command paths, and user accounts simultaneously.
Visualising Process Trees with the –tree Flag
Discovering which parent service spawned a rogue worker daemon is effortless using tree view:
procs --tree
procs organizes your processes into an ASCII ancestry tree, showing parent-child hierarchies from systemd (PID 1) down to individual worker threads and subprocess forks.
Real-Time Live Monitoring (–watch)
To monitor processes live like top or htop without installing extra daemons, use the --watch (or -w) switch:
procs --watch
The display refreshes continuously at one-second intervals, highlighting transient background spikes in real time.
Sorting by Resource Usage
You can instruct procs to order outputs based on CPU consumption, memory consumption, or runtime duration:
- Sort by Memory (Descending):
procs --sortd mem - Sort by CPU (Descending):
procs --sortd cpu - Sort by Read I/O:
procs --sortd read
Replacing the archaic formatting of ps with procs transforms terminal process auditing into an intuitive, visually modern workflow for Linux developers and system administrators.