LinuxCommandLibrary

procs

Display information about running processes

TLDR

List all processes showing the PID, user, CPU usage, memory usage, and the command which started them

$ procs
copy

List all processes as a tree
$ procs --tree
copy

List information about processes, if the commands which started them contain Zsh
$ procs [zsh]
copy

List information about all processes sorted by CPU time in [a]scending or [d]escending order
$ procs [--sorta|--sortd] cpu
copy

List information about processes with either a PID, command, or user containing 41 or firefox
$ procs --or [PID|command|user] [41] [firefox]
copy

List information about processes with both PID 41 and a command or user containing zsh
$ procs --and [41] [zsh]
copy

SYNOPSIS

procs [OPTIONS] [PID | NAME_PATTERN]

PARAMETERS

--tree
    Display processes in a tree structure. Also available as -t.

--sort
    Sort processes by a specific column (e.g., "pid", "cpu", "mem", "comm"). Also available as -s .

--watch
    Enable watch mode, refreshing output periodically like top. Also available as -w.

--filter
    Filter processes by PID or name pattern. Also available as -f .

--group
    Group processes by command name. Also available as -g.

--color
    Control color output (e.g., "always", "auto", "never"). Also available as -C .

--theme
    Apply a predefined color theme (e.g., "dracula", "dark").

--no-header
    Suppress the header row in the output.

--pid
    Show only processes matching the given PID. Also available as -p .

--name
    Show only processes matching the given name pattern. Also available as -n .

--format
    Specify output columns using a comma-separated list of column names. Also available as -F .

--hide-thread
    Hide kernel threads from the process list.

--width
    Set the screen width for column truncation.

DESCRIPTION

procs is a modern, user-friendly replacement for traditional Linux process viewers like ps and top. Built with Rust, it offers a visually enhanced and interactive experience for monitoring system processes. Key features include a colorful, customizable output, a process tree view, smart searching/filtering, and real-time watching capabilities. Unlike older tools, procs aims to provide more relevant information by default, such as CPU usage per core, GPU utilization, and network activity, presented in an easy-to-read format. It supports various output formats, theming, and allows for sorting and grouping processes, making it highly adaptable for both quick checks and detailed system analysis. Its intuitive interface and rich feature set streamline process management and troubleshooting on Unix-like systems.

CAVEATS

procs is not a standard utility distributed with all Linux distributions and generally requires manual installation. While feature-rich, it might not provide the same level of granular customization for obscure process attributes as ps for highly specialized scripting needs. Its interactive features are best experienced in a compatible terminal emulator.

INTERACTIVE MODE & KEYBINDINGS

When run without the --watch option, procs enters an interactive mode enabling dynamic sorting, filtering, and searching directly within the terminal using keyboard shortcuts. This allows for quick exploration of process data without re-executing the command.

CONFIGURATION FILE

procs supports persistent configuration via a TOML file (e.g., ~/.config/procs/config.toml). Users can customize default columns, sorting order, themes, and other preferences, allowing for a highly personalized experience across sessions.

HISTORY

procs emerged as a modern alternative to traditional process monitoring tools, written in Rust. Its development aimed to address the shortcomings of older commands by integrating modern UI/UX principles, better default information, and interactive features. It quickly gained traction in the open-source community for its performance, visual appeal, and ease of use, becoming a popular choice for developers and system administrators seeking an upgrade to their command-line toolkit.

SEE ALSO

ps(1), top(1), htop(1), glances(1), pstree(1), kill(1)

Copied to clipboard